If there's a TimeoutException, it's because your WS is not responding... Possibly the service invocation fails when called by Ode for some reason or another. I would set the "httpclient" log category to DEBUG, and inspect what is sent by Ode. Then I would try to send the same thing using a bare tool, like curl or SOAPUI and change the request until you get a satisfactory answer. Maybe the target service doesn't like one of headers sent by Ode, in which case you can disable WS-Addressing by setting the "ws-adddressing.headers" property to false.
See http://ode.apache.org/user-guide.html#UserGuide-EndpointConfiguration alex On Thu, Jun 11, 2009 at 2:56 AM, torrini <[email protected]> wrote: > > Hi everybody, > > I'm quite new to the topic of orchestration. Never the less I am trying to > design a BPEL-Process (connected with the wsdl and deploy-file) with > eclipse. A HelloWorldProcess (just receive and reply) works fine, but if I > want to invoke an external Web Service there comes an TimeoutException. > It's > not the WS, it gives the answer shortly when invoking it directly. > Can anybody help me? Other threads related to this topic didn't help on. > > > The log: > [...] > INFO - GeronimoLog.info(79) | Deployment of artifact Invoke successful: > [{namespace}SimpleInvokeProcess-32] > DEBUG - GeronimoLog.debug(66) | Received request message for > SimpleInvokeService.{namespace}process > DEBUG - GeronimoLog.debug(66) | Starting transaction. > DEBUG - GeronimoLog.debug(66) | Routed: svcQname > {namespace}SimpleInvokeService --> > [BpelProcess[{namespace}SimpleInvokeProcess-32]] > DEBUG - GeronimoLog.debug(66) | ODE routed to operation Operation: > name=process > style=REQUEST_RESPONSE,1 > Input: name=null > Message: name={namespace}SimpleInvokeProcessRequestMessage > Part: name=payload > elementName={namespace}SimpleInvokeProcessRequest > Output: name=null > Message: name={namespace}SimpleInvokeProcessResponseMessage > Part: name=payload > elementName={namespace}SimpleInvokeProcessResponse from service > {namespace}SimpleInvokeService > DEBUG - GeronimoLog.debug(66) | SET MEX property isTwoWay = true > DEBUG - GeronimoLog.debug(66) | Invoking ODE using MEX > {MyRoleMex#hqejbhcnphr4ch68fifujf [Client hqejbhcnphr4ch68fifuje] calling > {namespace}SimpleInvokeService.process(...)} > DEBUG - GeronimoLog.debug(66) | Message content: <?xml version="1.0" > encoding="UTF-8"?> > <message><payload><SimpleInvokeProcessRequest xmlns="namespace" > xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:m="namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <input>Fred</input> > </SimpleInvokeProcessRequest></payload></message> > DEBUG - GeronimoLog.debug(66) | invoke() EPR= null ==> > BpelProcess[{namespace}SimpleInvokeProcess-32] > DEBUG - GeronimoLog.debug(66) | Commiting ODE MEX > {MyRoleMex#hqejbhcnphr4ch68fifujf [Client hqejbhcnphr4ch68fifuje] calling > {namespace}SimpleInvokeService.process(...)} > DEBUG - GeronimoLog.debug(66) | Commiting transaction. > DEBUG - GeronimoLog.debug(66) | handleWorkEvent: InvokeInternal event for > mexid hqejbhcnphr4ch68fifujf > DEBUG - GeronimoLog.debug(66) | >> > handleWorkEvent(jobData={mexid=hqejbhcnphr4ch68fifujf, > pid={namespace}SimpleInvokeProcess-32, type=INVOKE_INTERNAL}) > DEBUG - GeronimoLog.debug(66) | InvokeInternal event for mexid > hqejbhcnphr4ch68fifujf > DEBUG - GeronimoLog.debug(66) | GET MEX property > org.apache.ode.bpel.myRoleSessionId = null > DEBUG - GeronimoLog.debug(66) | GET MEX property > org.apache.ode.bpel.myRoleSessionId = null > DEBUG - GeronimoLog.debug(66) | GET MEX property > org.apache.ode.bpel.partnerRoleSessionId = null > DEBUG - GeronimoLog.debug(66) | INPUTMSG: client.process: MSG RCVD keys=[] > mySessionId=null partnerSessionId=null > DEBUG - GeronimoLog.debug(66) | INPUTMSG: client.process: routing failed, > CREATING NEW INSTANCE > DEBUG - GeronimoLog.debug(66) | BpelRuntimeContextImpl created for instance > 9601. INDEXED STATE={} > DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: USING > CORRELATOR client.process > DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: CHECKING for > NEW INSTANCE match > DEBUG - GeronimoLog.debug(66) | INPUTMSGMATCH: Changing process instance > state from ready to active > DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: FOUND match > for NEW instance mexRef={MyRoleMex#hqejbhcnphr4ch68fifujf [Client > hqejbhcnphr4ch68fifuje] calling > {namespace}SimpleInvokeService.process(...)} > DEBUG - GeronimoLog.debug(66) | INVOKING PARTNER: > partnerLink={PartnerLinkInstance > partnerLinkDecl=OPartnerLink#21,scopeInstanceId=9651}, op=sayHello > channel=InvokeResponseChannel#20) > DEBUG - GeronimoLog.debug(66) | INVOKE PARTNER (SEP): sessionId=null > partnerSessionId=null > DEBUG - GeronimoLog.debug(66) | SET MEX property activityId = 36 > DEBUG - GeronimoLog.debug(66) | Routed: svcQname > {http://randomHelloService.tutorial.soa08.se.unihannover.de > }RandomHelloServiceService > --> null > DEBUG - GeronimoLog.debug(66) | Creating invocation check event in 180000ms > for mexid hqejbhcnphr4ch68fifuji > DEBUG - GeronimoLog.debug(66) | SET MEX property invokeCheckJobId = > hqejbhcnphr4ch68fifujj > DEBUG - GeronimoLog.debug(66) | Invoking a partner operation: sayHello > DEBUG - GeronimoLog.debug(66) | The service to invoke is the external > service > {http://randomHelloService.tutorial.soa08.se.unihannover.de > }RandomHelloServiceService:RandomHelloService > DEBUG - GeronimoLog.debug(66) | Create a new ServiceClient for > axis_service_for_{ > http://randomHelloService.tutorial.soa08.se.unihannover.de > }RandomHelloServiceService#RandomHelloService_hqejbhcnphr4ch68fifujk > 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="RandomHelloService" > xmlns:servicens=" > http://randomHelloService.tutorial.soa08.se.unihannover.de > ">servicens:RandomHelloServiceService</ServiceName></Metadata><Address> > http://hobbes.se.uni-hannover.de:8080/RandomHelloService/services/RandomHelloService > </Address></EndpointReference></service-ref> > DEBUG - GeronimoLog.debug(66) | GET MEX property > org.apache.ode.bpel.partnerRoleSessionId = null > DEBUG - GeronimoLog.debug(66) | GET MEX property > org.apache.ode.bpel.myRoleSessionId = null > DEBUG - GeronimoLog.debug(66) | My-Role EPR not specified, SEP will not be > used. > DEBUG - GeronimoLog.debug(66) | Axis2 sending message to > > http://hobbes.se.uni-hannover.de:8080/RandomHelloService/services/RandomHelloService > using MEX {PartnerRoleMex#hqejbhcnphr4ch68fifuji [PID > {namespace}SimpleInvokeProcess-32] calling > [email protected](...)} > DEBUG - GeronimoLog.debug(66) | Message: <?xml version='1.0' > encoding='utf-8'?><soapenv:Envelope > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ > "><soapenv:Body><sayHello > xmlns="http://randomHelloService.tutorial.soa08.se.unihannover.de"> > <impl:withSpace > xmlns:impl="http://randomHelloService.tutorial.soa08.se.unihannover.de > ">true</impl:withSpace> > </sayHello></soapenv:Body></soapenv:Envelope> > DEBUG - GeronimoLog.debug(66) | replyAsync mex=hqejbhcnphr4ch68fifuji > DEBUG - GeronimoLog.debug(66) | Setting execution state on instance 9601 > DEBUG - GeronimoLog.debug(66) | Sending stateful TO epr in message header > using session null > DEBUG - GeronimoLog.debug(66) | Sending a message containing wsa endpoints > in headers for session passing. > DEBUG - GeronimoLog.debug(66) | <?xml version='1.0' > encoding='utf-8'?><soapenv:Envelope > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ > "><soapenv:Header><addr:To > xmlns:addr="http://www.w3.org/2005/08/addressing"> > http://hobbes.se.uni-hannover.de:8080/RandomHelloService/services/RandomHelloService > </addr:To><addr:Action > xmlns:addr="http://www.w3.org/2005/08/addressing > "></addr:Action><addr:ReplyTo > xmlns:addr="http://www.w3.org/2005/08/addressing"><addr:Address> > http://www.w3.org/2005/08/addressing/anonymous > </addr:Address></addr:ReplyTo><addr:MessageID > xmlns:addr="http://www.w3.org/2005/08/addressing > ">uuid:hqejbhcnphr4ch68fifujl</addr:MessageID></soapenv:Header><soapenv:Body><sayHello > xmlns="http://randomHelloService.tutorial.soa08.se.unihannover.de"> > <impl:withSpace > xmlns:impl="http://randomHelloService.tutorial.soa08.se.unihannover.de > ">true</impl:withSpace> > </sayHello></soapenv:Body></soapenv:Envelope> > ERROR - GeronimoLog.error(108) | Timeout or execution error when waiting > for > response to MEX {MyRoleMex#hqejbhcnphr4ch68fifujf [Client > hqejbhcnphr4ch68fifuje] calling > {namespace}SimpleInvokeService.process(...)} > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.myrolemessageexchangeimpl$responsefut...@c0db92 > timed out(120000 ms) when waiting for a response! > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.myrolemessageexchangeimpl$responsefut...@c0db92 > timed out(120000 ms) when waiting for a response! > at > > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:240) > at > org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:163) > at > > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) > at > > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) > at > > org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) > at > > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) > at > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:619) > http://www.nabble.com/file/p23978419/deploy.xml deploy.xml > http://www.nabble.com/file/p23978419/SimpleInvokeProcess.bpel > SimpleInvokeProcess.bpel > http://www.nabble.com/file/p23978419/SimpleInvokeProcessArtifacts.wsdl > SimpleInvokeProcessArtifacts.wsdl > > > The BPEL-File: > <!-- SimpleInvokeProcess BPEL Process [Generated by the Eclipse BPEL > Designer] --> > <bpel:process name="SimpleInvokeProcess" > targetNamespace="namespace" > suppressJoinFailure="yes" > xmlns:tns="namespace" > > xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" > > xmlns:ns1="http://randomHelloService.tutorial.soa08.se.unihannover.de" > xmlns:ns2="http://www.w3.org/2001/XMLSchema"> > > <!-- Import the client WSDL --> > <bpel:import > namespace="http://randomHelloService.tutorial.soa08.se.unihannover.de" > location="RandomHelloService.wsdl" > importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import> > <bpel:import location="SimpleInvokeProcessArtifacts.wsdl" > namespace="namespace" > importType="http://schemas.xmlsoap.org/wsdl/" /> > > <!-- ================================================================= > --> > <!-- PARTNERLINKS > --> > <!-- List of services participating in this BPEL process > --> > <!-- ================================================================= > --> > <bpel:partnerLinks> > <!-- The 'client' role represents the requester of this service. --> > <bpel:partnerLink name="client" > partnerLinkType="tns:SimpleInvokeProcess" > myRole="SimpleInvokeProcessProvider" > /> > <bpel:partnerLink name="RandomHelloPL" > partnerLinkType="tns:RandomHelloPLT" > partnerRole="RandomHelloServiceProvider"></bpel:partnerLink> > </bpel:partnerLinks> > > <!-- ================================================================= > --> > <!-- VARIABLES > --> > <!-- List of messages and XML documents used within this BPEL process > --> > <!-- ================================================================= > --> > <bpel:variables> > <!-- Reference to the message passed as input during initiation --> > <bpel:variable name="input" > messageType="tns:SimpleInvokeProcessRequestMessage"> > </bpel:variable> > > <!-- > Reference to the message that will be returned to the requester > --> > <bpel:variable name="output" > messageType="tns:SimpleInvokeProcessResponseMessage"> > </bpel:variable> > <bpel:variable name="RandomHelloRequest" > messageType="ns1:sayHelloRequest"> > </bpel:variable> > <bpel:variable name="RandomHelloResponse" > messageType="ns1:sayHelloResponse"> > </bpel:variable> > > </bpel:variables> > > <!-- ================================================================= > --> > <!-- ORCHESTRATION LOGIC > --> > <!-- Set of activities coordinating the flow of messages across the > --> > <!-- services integrated within this business process > --> > <!-- ================================================================= > --> > <bpel:sequence name="main"> > > <!-- Receive input from requester. > Note: This maps to operation defined in > SimpleInvokeProcess.wsdl > --> > <bpel:receive name="receiveInput" partnerLink="client" > portType="tns:SimpleInvokeProcess" > operation="process" variable="input" > createInstance="yes"/> > > > > <!-- Generate reply to synchronous request --> > > > > > > <bpel:assign validate="no" name="PrepareRandomHelloRequest"> > > > > > > > > > > <bpel:copy> > <bpel:from> > <bpel:literal xml:space="preserve"><impl:sayHello > xmlns:impl="http://randomHelloService.tutorial.soa08.se.unihannover.de" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <impl:withSpace></impl:withSpace> > </impl:sayHello></bpel:literal> > </bpel:from><bpel:to part="parameters" > variable="RandomHelloRequest"></bpel:to> > > > </bpel:copy> > <bpel:copy><bpel:from> > <bpel:literal xml:space="preserve">true</bpel:literal> > </bpel:from> > <bpel:to part="parameters" variable="RandomHelloRequest"> > <bpel:query > queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"> > <![CDATA[ns1:withSpace]]> > </bpel:query> > </bpel:to> > > </bpel:copy> > </bpel:assign> > <bpel:invoke name="GetGreeting" partnerLink="RandomHelloPL" > operation="sayHello" portType="ns1:RandomHelloService" > inputVariable="RandomHelloRequest" > outputVariable="RandomHelloResponse"></bpel:invoke> > <bpel:assign validate="no" name="PrepareOutput"> > > <bpel:copy> > <bpel:from> > > <![CDATA[concat(bpel:getVariableData('RandomHelloResponse', 'parameters', > '/'), bpel:getVariableData('input', 'payload', '/'))]]> > </bpel:from> > <bpel:to part="payload" variable="output"> > <bpel:query > > queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:result]]></bpel:query> > </bpel:to> > </bpel:copy> > > </bpel:assign> > <bpel:reply name="replyOutput" > partnerLink="client" > portType="tns:SimpleInvokeProcess" > operation="process" > variable="output" > /> > </bpel:sequence> > </bpel:process> > > > The wsdl-file: > <?xml version="1.0" encoding="UTF-8"?> > <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" > xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" > xmlns:wsdl="http://randomHelloService.tutorial.soa08.se.unihannover.de" > xmlns:tns="namespace" > xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > name="SimpleInvokeProcess" targetNamespace="namespace"> > <import > namespace="http://randomHelloService.tutorial.soa08.se.unihannover.de" > location="RandomHelloService.wsdl"/> > <types> > <schema xmlns="http://www.w3.org/2001/XMLSchema" > attributeFormDefault="unqualified" elementFormDefault="qualified" > targetNamespace="namespace"> > <element name="SimpleInvokeProcessRequest"> > <complexType> > <sequence> > <element name="input" > type="string"/> > </sequence> > </complexType> > </element> > <element name="SimpleInvokeProcessResponse"> > <complexType> > <sequence> > <element name="result" > type="string"/> > </sequence> > </complexType> > </element> > </schema> > </types> > <message name="SimpleInvokeProcessRequestMessage"> > <part name="payload" > element="tns:SimpleInvokeProcessRequest"/> > </message> > <message name="SimpleInvokeProcessResponseMessage"> > <part name="payload" > element="tns:SimpleInvokeProcessResponse"/> > </message> > <portType name="SimpleInvokeProcess"> > <operation name="process"> > <input > message="tns:SimpleInvokeProcessRequestMessage"/> > <output > message="tns:SimpleInvokeProcessResponseMessage"/> > </operation> > </portType> > <binding name="SimpleInvokeBinding" type="tns:SimpleInvokeProcess"> > <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > <operation name="process"> > <soap:operation soapAction="namespace/process"/> > <input> > <soap:body use="literal"/> > </input> > <output> > <soap:body use="literal"/> > </output> > </operation> > </binding> > <service name="SimpleInvokeService"> > <port name="SimpleInvokePort" > binding="tns:SimpleInvokeBinding"> > <soap:address > location="http://141.56.4.71:8080/ode/processes/SimpleInvokeService"/> > </port> > </service> > <!-- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > TYPE DEFINITION - List of types participating in this BPEL process > The BPEL Designer will generate default request and response types > but you can define or import any XML Schema type and use them as part > of the message types. > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <plnk:partnerLinkType name="RandomHelloPLT"> > <plnk:role name="RandomHelloServiceProvider" > portType="wsdl:RandomHelloService"/> > </plnk:partnerLinkType> > <!-- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > MESSAGE TYPE DEFINITION - Definition of the message types used as > part of the port type defintions > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <!-- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > PORT TYPE DEFINITION - A port type groups a set of operations into > a logical service unit. > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <!-- portType implemented by the SimpleInvokeProcess BPEL process > --> > <!-- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > PARTNER LINK TYPE DEFINITION > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > --> > <plnk:partnerLinkType name="SimpleInvokeProcess"> > <plnk:role name="SimpleInvokeProcessProvider" > portType="tns:SimpleInvokeProcess"/> > </plnk:partnerLinkType> > </definitions> > > > The deploy-file: > <?xml version="1.0" encoding="UTF-8"?> > <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03" > xmlns:namespace="namespace" > xmlns:randomHelloService.tutorial.soa08.se.unihannover.de=" > http://randomHelloService.tutorial.soa08.se.unihannover.de"> > <process name="namespace:SimpleInvokeProcess"> > <active>true</active> > <retired>false</retired> > <process-events generate="all"/> > <provide partnerLink="client"> > <service name="namespace:SimpleInvokeService" > port="SimpleInvokePort"/> > </provide> > <invoke partnerLink="RandomHelloPL"> > <service > name="randomHelloService.tutorial.soa08.se.unihannover.de: > RandomHelloServiceService" > port="RandomHelloService"/> > </invoke> > </process> > </deploy> > -- > View this message in context: > http://www.nabble.com/TimeOut-while-invoking-external-WS-tp23978419p23978419.html > Sent from the Apache Ode User mailing list archive at Nabble.com. > >
