You can use the SOAPMonitor in Axis2 to monitor the messages to/from ODE.

http://ws.apache.org/axis2/1_0/soapmonitor-module.html

You will need to download the Axis2 source and compile the SOAPMonitor
applet, then follow the steps to add the various files into webapps/ode.

Regards,
Terry



On 9 April 2010 08:47, KOP <[email protected]> wrote:

>
> Hi
>
> Whether does ODE support BPEL engine communicates with external service
> through HTTP POST?
>
> Question from my experiment:
> My experiment intends to make bpel invoke external service through HTTP
> POST. The binding section in external
> service WSDL is as follow:
> <binding name="WPSChainHTTPPostBinding" type="tns:WPSChain">
>        <http:binding verb="POST" />
>        <operation name="DescribeProcess">
>                <http:operation location="/WebProcessingService" />
>                <input>
>                        <mime:content
> type="application/x-www-form-urlencoded" />
>                </input>
>                <output>
>                        <mime:content type="text/xml" />
>                </output>
>        </operation>
> </binding>
>
> Maybe workflow occurs in ode be summaried as follow:
> step1: my client(SoapUI) sends SOAP message to ODE
> step2: ODE extracts SOAP body and generates HTTP POST request to invoke
> external service
> step3: ODE receives POST response from external service
> step4: ODE generate SOAP resposne with POST response
>
> However, according to my error log, it seems that ODE fails to extracts
> SOAP
> body and generates HTTP POST request to invoke external service at step 2.
> The error
>
> message is showed as below (from error message, we found that request
> entity
> in POST is missing):
>
>
> DEBUG - GeronimoLog.debug(66) | Received request message for
> OGC_SingleBPEL.{http://www.kop.org/ogc_singlebpel}process<http://www.kop.org/ogc_singlebpel%7Dprocess>
> DEBUG - GeronimoLog.debug(66) | ODE routed to operation Operation:
> name=process
> style=REQUEST_RESPONSE,1
> Input: name=null
> Message:
> name={http://www.kop.org/ogc_singlebpel}OGC_SingleBPELRequestMessage<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPELRequestMessage>
> Part: name=parameters
> elementName={http://www.opengis.net/wps/1.0.0}DescribeProcess<http://www.opengis.net/wps/1.0.0%7DDescribeProcess>
> Output: name=null
> Message:
> name={http://www.kop.org/ogc_singlebpel}OGC_SingleBPELResponseMessage<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPELResponseMessage>
> Part: name=parameters
> elementName={http://www.opengis.net/wps/1.0.0}ProcessDescriptions<http://www.opengis.net/wps/1.0.0%7DProcessDescriptions>from
> service 
> {http://www.kop.org/ogc_singlebpel}OGC_SingleBPELService<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPELService>
> DEBUG - GeronimoLog.debug(66) | Invoking ODE using MEX
> {MyRoleMex#hqejbhcnphr5604nfppo1b [Client null] calling
> {http://www.kop.org/ogc_singlebpel}
>
> OGC_SingleBPELService.process(...)}
> DEBUG - GeronimoLog.debug(66) | Message content:  <?xml version="1.0"
> encoding="UTF-8"?>
> <message><parameters><DescribeProcess
> xmlns="http://www.opengis.net/wps/1.0.0"; language="eng" service="WPS"
> version="1.0.0" xmlns:ns="http://www.opengis.net/wps/1.0.0";
>
> xmlns:ns1="http://www.opengis.net/ows/1.1";
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
>
>         <Identifier xmlns="http://www.opengis.net/ows/1.1";
> codeSpace="?">testProcess</Identifier>
>      </DescribeProcess></parameters></message>
> DEBUG - GeronimoLog.debug(66) | invoke() EPR= null ==>
> ODEProcess[{http://www.kop.org/ogc_singlebpel}OGC_SingleBPEL-1<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPEL-1>
> ]
> DEBUG - GeronimoLog.debug(66) | INPUTMSG: 18.process: MSG RCVD keys=[]
> mySessionId=null partnerSessionId=null
> DEBUG - GeronimoLog.debug(66) | INPUTMSG: 18.process: routing failed,
> CREATING NEW INSTANCE
> DEBUG - GeronimoLog.debug(66) | enqueue: for instance
> {http://www.kop.org/ogc_singlebpel}OGC_SingleBPEL-1#601<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPEL-1#601>
> :
> org.apache.ode.bpel.engine.bpelinstanceworke...@1e55d39
> DEBUG - GeronimoLog.debug(66) | enqueuRunnable for process
> {http://www.kop.org/ogc_singlebpel}OGC_SingleBPEL-1<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPEL-1>:
> {BpelInstanceWorker for
>
> {http://www.kop.org/ogc_singlebpel}OGC_SingleBPEL-1#601<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPEL-1#601>
> }
> DEBUG - GeronimoLog.debug(66) | Starting worker thread
> Thread[ODEServerImpl-2,5,main] for instance IID
> {http://www.kop.org/ogc_singlebpel}OGC_SingleBPEL-1#601<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPEL-1#601>
> DEBUG - GeronimoLog.debug(66) | Doing work for instance
> {http://www.kop.org/ogc_singlebpel}OGC_SingleBPEL-1#601<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPEL-1#601>in
>  thread
> Thread[ODEServerImpl-2,5,main]
> DEBUG - GeronimoLog.debug(66) | Doing work for instance
> {http://www.kop.org/ogc_singlebpel}OGC_SingleBPEL-1#601<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPEL-1#601>in
>  thread
> Thread[ODEServerImpl-1,5,main]
> DEBUG - GeronimoLog.debug(66) | SELECT: 13: USING CORRELATOR 18.process
> DEBUG - GeronimoLog.debug(66) | SELECT: 13: CHECKING for NEW INSTANCE match
> DEBUG - GeronimoLog.debug(66) | INPUTMSGMATCH: Changing process instance
> state from ready to active
> DEBUG - GeronimoLog.debug(66) | SELECT: 13: FOUND match for NEW instance
> mexref=org.apache.ode.dao.jpa.messageexchangedaoi...@197507c
> DEBUG - GeronimoLog.debug(66) | INVOKING PARTNER:
> partnerLink={PartnerLinkInstance
> partnerLinkDecl=OPartnerLink#19,scopeInstanceId=651}, op=DescribeProcess
> channel=24)
> DEBUG - GeronimoLog.debug(66) | Resolving endpoint reference <?xml
> version="1.0" encoding="UTF-8"?>
> <service-ref
> xmlns="http://docs.oasis-open.org/wsbpel/2.0/serviceref
> "><EndpointReference
> xmlns="http://www.w3.org/2005/08/addressing";><Metadata><ServiceName
>
> xmlns="http://www.w3.org/2006/05/addressing/wsdl";
> EndpointName="WPSChainHTTPPort"
>
> xmlns:servicens="http://www.kop.org/WPSChain
> ">servicens:WPSChainService</ServiceName></Metadata><Address>
> http://localhost:8080/cgi-bin/wps.py?
>
> </Address></EndpointReference></service-ref>
> DEBUG - GeronimoLog.debug(66) | Setting myRoleMex session ids for p2p
> interaction, mySession null - partnerSess null
> DEBUG - GeronimoLog.debug(66) | INVOKE PARTNER (SEP): sessionId=null
> partnerSessionId=null
> DEBUG - GeronimoLog.debug(66) | schedulingRunnable for process
> {http://www.kop.org/ogc_singlebpel}OGC_SingleBPEL-1<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPEL-1>
> :
>
>
> org.apache.ode.bpel.engine.partnerlinkpartnerroleimpl$unreliableinvo...@b41541
> DEBUG - GeronimoLog.debug(66) | Creating invocation check event for mexid
> hqejbhcnphr5604nfppo1d
> DEBUG - GeronimoLog.debug(66) | CACHE SAVE: #1 for instance 601
> DEBUG - GeronimoLog.debug(66) | Finished work for instance
> {http://www.kop.org/ogc_singlebpel}OGC_SingleBPEL-1#601<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPEL-1#601>in
>  thread
> Thread[ODEServerImpl-1,5,main]
> DEBUG - GeronimoLog.debug(66) | Finished work for instance
> {http://www.kop.org/ogc_singlebpel}OGC_SingleBPEL-1#601<http://www.kop.org/ogc_singlebpel%7DOGC_SingleBPEL-1#601>in
>  thread
> Thread[ODEServerImpl-2,5,main]
> DEBUG - GeronimoLog.debug(66) | Worker thread
> Thread[ODEServerImpl-2,5,main]
> for instance IID 601 ran out of work.
> DEBUG - GeronimoLog.debug(66) | Invoking a partner operation:
> DescribeProcess
> DEBUG - GeronimoLog.debug(66) | The service to invoke is the external
> service 
> {http://www.kop.org/WPSChain}WPSChainService:WPSChainHTTPPort<http://www.kop.org/WPSChain%7DWPSChainService:WPSChainHTTPPort>
> DEBUG - GeronimoLog.debug(66) | Preparing HttpExternalService invocation...
> DEBUG - GeronimoLog.debug(66) | Translating Properties for HttpClient.
> Properties size=0
> DEBUG - GeronimoLog.debug(66) | Resolving endpoint reference <?xml
> version="1.0" encoding="UTF-8"?>
> <service-ref
> xmlns="http://docs.oasis-open.org/wsbpel/2.0/serviceref
> "><EndpointReference
> xmlns="http://www.w3.org/2005/08/addressing";><Metadata><ServiceName
>
> EndpointName="WPSChainHTTPPort"
> xmlns="http://www.w3.org/2006/05/addressing/wsdl";
>
> xmlns:servicens="http://www.kop.org/WPSChain
> ">servicens:WPSChainService</ServiceName></Metadata><Address>
> http://localhost:8080/cgi-bin/wps.py?
>
> </Address></EndpointReference></service-ref>
> DEBUG - GeronimoLog.debug(66) | Preparing http request...
> DEBUG - GeronimoLog.debug(66) | Content-Type
> [application/x-www-form-urlencoded] Charset [ISO-8859-1]
> DEBUG - GeronimoLog.debug(66) | Configuring http client...
> DEBUG - GeronimoLog.debug(66) | Executing http request : POST
> http://localhost:8080/cgi-bin/wps.py
> DEBUG - GeronimoLog.debug(66) | HTTP Request Details:
> POST http://localhost:8080/cgi-bin/wps.py
> Request Headers:
>        Accept: text/xml
> Request Entity:
>        Content-Type:application/x-www-form-urlencoded; charset=ISO-8859-1
>        Content-Length:0
>        Content-Charset:ISO-8859-1
>        Request Entity:
>
> WARN - GeronimoLog.warn(92) | Going to buffer response body of large or
> unknown size. Using getResponseBodyAsStream instead is recommended.
> DEBUG - GeronimoLog.debug(66) | Received response for MEX
> {PartnerRoleMex#hqejbhcnphr5604nfppo1d [PID null] calling
>
> [email protected](...)}
> DEBUG - GeronimoLog.debug(66) | HTTP Response Details:
> POST http://localhost:8080/cgi-bin/wps.py
> Status-Line: HTTP/1.1 200 OK
> Response Headers:
>        Date: Fri, 02 Apr 2010 06:35:39 GMT
>        Server: Apache/2.2.14 (Unix)
>        Transfer-Encoding: chunked
>        Content-Type: text/xml
> Response Entity:
> <?xml version="1.0" encoding="utf-8"?>
> <ExceptionReport version="1.0.0" xmlns="http://www.opengis.net/ows";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>        <Exception exceptionCode="NoApplicableCode">
>                <ExceptionText>
>                        no element found: line 1, column 0
>                </ExceptionText>
>        </Exception>
> </ExceptionReport>
>
>
> How can i solve this problem ? Special thanks for help!
> Moreover,is there some tool or API to let me inspect SOAP message
> transfered
> between ODE and external service?
>
>
>
> KOP
>
>
>
> --
> View this message in context:
> http://old.nabble.com/Question-about-ODE-invoking-external-service-through-HTTP-POST-tp28186313p28186313.html
> Sent from the Apache Ode Dev mailing list archive at Nabble.com.
>
>

Reply via email to