Hi,
I have deployed a bpel process that invokes a web service. The wsdl is: <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:tns="http://www.example.org/HTAssignUsersPT/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="HTAssignUsersPT" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" targetNamespace="http://www.example.org/HTAssignUsersPT/" xmlns:data="http://www.example.org/HTDataSchema/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <plnk:partnerLinkType name="AssignUserServiceLT" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"> <plnk:role name="AssignUserServiceODE" portType="tns:AssignUserPT" /> <plnk:role name="AssignUserServiceResponseODE" portType="tns:AssignUserResponsePT" /> </plnk:partnerLinkType> <wsdl:types> <xsd:schema> <xsd:import namespace="http://www.example.org/HTDataSchema/" schemaLocation="HTDataSchema.xsd"> </xsd:import> </xsd:schema> </wsdl:types> <wsdl:message name="AssignUsersRequest"> <wsdl:part element="data:AssignUsers" name="assinguserIP" /> </wsdl:message> <wsdl:message name="AssignUsersResponse"> <wsdl:part element="data:AssignUsersReply" name="assinguserRespIP" /> </wsdl:message> <wsdl:portType name="AssignUserPT"> <wsdl:operation name="AssignUsers"> <wsdl:input message="tns:AssignUsersRequest" /> </wsdl:operation> </wsdl:portType> <wsdl:portType name="AssignUserResponsePT"> <wsdl:operation name="GetAssignUsersResponse"> <wsdl:input message="tns:AssignUsersResponse" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="AssignUserBinding" type="tns:AssignUserPT"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="AssignUsers"> <soap:operation soapAction="http://www.example.org/HTAssignUsersPT/AssignUsers" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> </wsdl:operation> </wsdl:binding> <wsdl:binding name="AssignUserResponseBinding" type="tns:AssignUserResponsePT"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="GetAssignUsersResponse"> <soap:operation soapAction="http://www.example.org/HTAssignUsersPT/GetAssignUsersRespons e" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> </wsdl:operation> </wsdl:binding> <wsdl:service name="AssignUserServiceODE"> <wsdl:port name="AssignUserServicePort" binding="tns:AssignUserBinding"> <soap:address location="http://blrs58:8090/AssignUserWsODE/AssignUserServiceODE"></soa p:address> </wsdl:port> <wsdl:port name="AssignUserResponseServicePort" binding="tns:AssignUserResponseBinding"> <soap:address location="http://localhost:8080/ode/processes/AssignUserResponse"></soap :address> </wsdl:port> </wsdl:service> </wsdl:definitions> ******************* And the BPEL is <?xml version="1.0" encoding="UTF-8"?> <bpel:process xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:data="http://www.example.org/HTDataSchema/" xmlns:ns1="http://www.example.org/HTCreateAssembly/" xmlns:ns2="http://www.example.org/HTAssignUsersPT/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="HTCreateAssembly" suppressJoinFailure="yes" targetNamespace="http://HTCreateAssembly"> <bpel:import importType="http://schemas.xmlsoap.org/wsdl/" location="HTCreateAssembly.wsdl" namespace="http://www.example.org/HTCreateAssembly/"/> <bpel:import importType="http://schemas.xmlsoap.org/wsdl/" location="HTAssignUsersPT.wsdl" namespace="http://www.example.org/HTAssignUsersPT/"/> <bpel:partnerLinks> <bpel:partnerLink myRole="StartAssemblyServiceODE" name="StartAssemblyLT" partnerLinkType="ns1:StartAssemblyLT"/> <bpel:partnerLink myRole="AssignUserServiceResponseODE" name="AssignUserServiceLT" partnerLinkType="ns2:AssignUserServiceLT" partnerRole="AssignUserServiceODE" initializePartnerRole="yes"/> </bpel:partnerLinks> <bpel:variables> <bpel:variable name="inputUser" messageType="ns1:StartAssemblyRequest"/> <bpel:variable name="assignUserResponse" messageType="ns2:AssignUsersResponse"/> <bpel:variable name="assignedUser" messageType="ns2:AssignUsersRequest"/> <bpel:variable name="tmpVar" type="xsd:string"/> </bpel:variables> <bpel:sequence> <bpel:receive createInstance="yes" name="Start" operation="StartAssembly" partnerLink="StartAssemblyLT" variable="inputUser"> </bpel:receive> <bpel:assign> <bpel:copy> <bpel:from> <bpel:literal> <data:AssignUsers> <data:userid>A2</data:userid> </data:AssignUsers> </bpel:literal> </bpel:from> <bpel:to>$assignedUser.assinguserIP</bpel:to> <bpel:from>$inputUser.startAssemblyIP/data:userid</bpel:from> <bpel:to>$assignedUser.assinguserIP/data:userid</bpel:to> </bpel:copy> </bpel:assign> <bpel:invoke inputVariable="assignedUser" name="InvokeAssignUsers" operation="AssignUsers" partnerLink="AssignUserServiceLT"> </bpel:invoke> <bpel:assign> <bpel:copy> <bpel:from> <bpel:literal> <data:AssignUsers> <data:userid>A2</data:userid> </data:AssignUsers> </bpel:literal> </bpel:from> <bpel:to>$assignUserResponse.assinguserRespIP</bpel:to> <bpel:from>$assignedUser.assinguserIP/data:userid</bpel:from> <bpel:to>$assignUserResponse.assinguserRespIP/data:userid</bpel:to> </bpel:copy> </bpel:assign> <bpel:receive name="ReceiveResponse" operation="GetAssignUsersResponse" partnerLink="AssignUserServiceLT" variable="assignUserResponse"> </bpel:receive> </bpel:sequence> </bpel:process> There is another wsdl that defines the partnerlinktype StartAssemblyLT and the StartAssembly operation and an xsd that defines the complex types used in "data:". The receive works fine but the invoke fails with following errors: DEBUG - GeronimoLog.debug(66) | INVOKING PARTNER: partnerLink={PartnerLinkInstance partnerLinkDecl=OPartnerLink#18,scopeInstanceId=3003}, op=AssignUsers channel=null) DEBUG - GeronimoLog.debug(66) | INVOKE PARTNER (SEP): sessionId=hqejbhcnphr3b2tiimfgqv partnerSessionId=null DEBUG - GeronimoLog.debug(66) | Routed: svcQname {http://www.example.org/HTAssignUsersPT/}AssignUserServiceODE --> BpelProcess[{http://HTCreateAssembly}HTCreateAssembly-41] DEBUG - GeronimoLog.debug(66) | Routed: svcQname {http://www.example.org/HTAssignUsersPT/}AssignUserServiceODE --> BpelProcess[{http://HTCreateAssembly}HTCreateAssembly-41] DEBUG - GeronimoLog.debug(66) | Invoking in a p2p interaction, partnerrole {PartnerRoleMex#hqejbhcnphr3b2tiimfgqx [PID {http://HTCreateAssembly}HTCreateAssembly-41] calling null.AssignUsers(...)} - myrole {MyRoleMex#hqejbhcnphr3b2tiimfgr0 [Client hqejbhcnphr3b2tiimfgqx] calling {http://www.example.org/HTAssignUsersPT/}AssignUserServiceODE.AssignUser s(...)} DEBUG - GeronimoLog.debug(66) | Setting myRoleMex session ids for p2p interaction, mySession null - partnerSess hqejbhcnphr3b2tiimfgqv DEBUG - GeronimoLog.debug(66) | SET MEX property org.apache.ode.bpel.partnerRoleSessionId = hqejbhcnphr3b2tiimfgqv DEBUG - GeronimoLog.debug(66) | Routed: svcQname {http://www.example.org/HTAssignUsersPT/}AssignUserServiceODE --> BpelProcess[{http://HTCreateAssembly}HTCreateAssembly-41] DEBUG - GeronimoLog.debug(66) | invoke() EPR= null ==> BpelProcess[{http://HTCreateAssembly}HTCreateAssembly-41] ERROR - GeronimoLog.error(108) | Method "run" in class "org.apache.ode.bpel.runtime.INVOKE" threw an unexpected exception. java.lang.NullPointerException at org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl.invoke(MyRoleMessag eExchangeImpl.java:134) at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeCont extImpl.java:760) at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:88) I could call the web service at http://blrs58:8090/AssignUserWsODE/AssignUserServiceODE using sendsoap. But the web service isn't getting called by invoke. I went through the mail list and most of the messages on similar topic talk of assigning the EPR. I tried all the options in http://ode.apache.org/user-guide.html#UserGuide-ManipulatingEndpoints but wasn't successful. Thanks, Prakash Reddy Bande Altair Engg. Inc, Troy, MI
