I don't know why another myRole attibute is required. If I look at the PingPong example the calling BPEL process has only one myRole attribute. I found no difference between the PingPong example and my test project except that the called service is a JSR181 compliant ServiceMix service and not a BPEL process.
If I define the partnerLinks like below the service could be invoked by the BPEL process but an exception was thrown when the response should be delivered to the caller. I've checked out the latest version of ODE and I built it. But then there is a NullPointerException at exactly the same place (cannot deliver the response). If I add a myRole attribute to the federalCriminalRegisterPartnerLink there are a lot of CompilationExceptions thrown if I deploy the BPEL process SA to ServiceMix... -----Ursprüngliche Nachricht----- Von: von Arx, Matthias [mailto:[EMAIL PROTECTED] Gesendet: Freitag, 10. November 2006 20:33 An: [email protected] Betreff: AW: AW: Creating a deploy.xml file for a BPEL process for ServiceMix Hi <partnerLinks> <partnerLink name="criminalRegisterPartnerLink" partnerLinkType="cr:CriminalRegisterPartnerLinkType" myRole="Provider" /> <partnerLink name="federalCriminalRegisterPartnerLink" partnerLinkType="cr:FederalCriminalRegisterPartnerLinkType" partnerRole="FederalRegisterService" initializePartnerRole="yes" /> Unfortunately there is no myRole attribute... ...I'll add one and try it again. Thank's Regards, Matthias -----Ursprüngliche Nachricht----- Von: Alex Boisvert [mailto:[EMAIL PROTECTED] Gesendet: Freitag, 10. November 2006 19:02 An: [email protected] Betreff: Re: AW: Creating a deploy.xml file for a BPEL process for ServiceMix Can you check if you partnerLink declaration has a myRole attribute? alex von Arx, Matthias wrote: > Hi Alex, > > Thank you for the answer. > This was the ServiceMix 3.0 M2 release. I've installed the latest release > now. But there is still a problem: > After invoking the partnerlink the FederalCriminalRegisterService could not > find a valid link for sending back the response: > > > 17:54:05,121 | DEBUG | pool-2-thread-1 | ExecutionQueueImpl | > mpl$ExecutionQueueOutputStream 682 | ReplacmentMap: > getReplacement(OPartnerLink#35) = [EMAIL PROTECTED] > 17:54:05,121 | DEBUG | pool-2-thread-1 | OdeService | > org.apache.ode.jbi.OdeService 235 | ODE MEX {MyRoleMex#98304 [Client > ID:chav548c-3058-1163091130805-8:0] calling > {http://husky.siemens.com/xml/ns/services/criminalregister}CriminalRegisterService.getCriminalRecords(...)} > completed ASYNCHRONOUSLY. > 17:54:05,121 | DEBUG | pool-2-thread-1 | OdeService | > org.apache.ode.jbi.OdeService 249 | Commiting ODE MEX {MyRoleMex#98304 > [Client ID:chav548c-3058-1163091130805-8:0] calling > {http://husky.siemens.com/xml/ns/services/criminalregister}CriminalRegisterService.getCriminalRecords(...)} > 17:54:06,834 | DEBUG | Finalizer | BpelC | > apache.ode.bpel.compiler.BpelC 159 | Sett output to stream null > 17:54:06,834 | DEBUG | Finalizer | BpelC | > apache.ode.bpel.compiler.BpelC 159 | Sett output to stream null > 17:54:06,844 | ERROR | pool-2-thread-2 | OdeConsumer | > org.apache.ode.jbi.OdeConsumer 214 | error delivering RESPONSE: > java.lang.IllegalStateException: Unknown partner link OPartnerLink#34 > at > org.apache.ode.bpel.engine.BpelProcess.getInitialMyRoleEPR(BpelProcess.java:772) > at > org.apache.ode.bpel.engine.BpelEngineImpl.getMessageExchange(BpelEngineImpl.java:116) > at org.apache.ode.jbi.OdeConsumer$2.call(OdeConsumer.java:184) > at org.apache.ode.jbi.OdeConsumer$2.call(OdeConsumer.java:183) > at > org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.execTransaction(QuartzSchedulerImpl.java:211) > at org.apache.ode.jbi.OdeConsumer.outResponse(OdeConsumer.java:182) > at > org.apache.ode.jbi.OdeConsumer.onJbiMessageExchange(OdeConsumer.java:134) > at > org.apache.ode.jbi.JbiMessageExchangeEventRouter.onJbiMessageExchange(JbiMessageExchangeEventRouter.java:40) > at org.apache.ode.jbi.Receiver$1.run(Receiver.java:190) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) > at java.util.concurrent.FutureTask.run(FutureTask.java:123) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) > at java.lang.Thread.run(Thread.java:595) > 17:54:06,844 | DEBUG | pool-2-thread-2 | DeliveryChannelImpl | > .messaging.DeliveryChannelImpl 405 | Send ID:chav548c-3058-1163091130805-4:0 > in DeliveryChannel{OdeBpelEngine} > 17:54:06,854 | DEBUG | pool-2-thread-2 | DeliveryChannelImpl | > .messaging.DeliveryChannelImpl 344 | Sent: InOut[ > > > Is there another partnerlink required for sending back the response? If so, > this would be a little strange for me, because the referenced port type of > the invoked service/partnerlink contains the response message. > > <message name="getFederalCriminalRecords"> > <part name="body" element="ns2:getCriminalRecords"/> > </message> > > <message name="getFederalCriminalRecordsResponse"> > <part name="body" element="ns2:getCriminalRecordsResponse"/> > </message> > > <portType name="FederalCriminalRegisterPortType"> > <operation name="getFederalCriminalRecords"> > <input message="tns:getFederalCriminalRecords"/> > <output message="tns:getFederalCriminalRecordsResponse"/> > </operation> > </portType> > > <plnk:partnerLinkType name="FederalCriminalRegisterPartnerLinkType"> > <plnk:role name="FederalRegisterService" > portType="tns:FederalCriminalRegisterPortType"/> > </plnk:partnerLinkType> > > Regards, Matthias > > > > -----Ursprüngliche Nachricht----- > Von: Alex Boisvert [mailto:[EMAIL PROTECTED] > Gesendet: Donnerstag, 9. November 2006 18:17 > An: [email protected] > Betreff: Re: Creating a deploy.xml file for a BPEL process for ServiceMix > > Hi Matthias, > > Which version of ServiceMix are you using? ServiceMix v3.0.1 (or later) > is required for the integration to work. > > See http://issues.apache.org/activemq/browse/SM-581 > > alex > > > > von Arx, Matthias wrote: > >> Hi, >> >> We are using the ODE JBI service engine installed on ServiceMix. My >> problem is now, how to address other services deployed in ServiceMix, >> e.g. a JSR181 compliant service. >> >> I guess, for that reason the attribute initializePartnerRole="yes" has >> to be set on each partner link declaration and a corresponding partner >> link declaration is required in the deploy.xml descriptor (like in the >> ping-pong example). >> >> With the following deploy.xml >> >> <process name="pns:CriminalRegisterProcess"> >> <active>true</active> >> <provide partnerLink="criminalRegisterPartnerLink"> >> <service name="sns:CriminalRegisterService" >> port="CriminalRegisterPort"/> >> </provide> >> <invoke partnerLink="federalCriminalRegisterPartnerLink"> >> <service name="fcr:FederalCriminalRegisterService" >> port="JbiEndpoint"/> >> </invoke> >> </process> >> >> > >
