ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthieu Riou" <matth...@offthelip.org>
Subject Re: Invoke throws NullPointerException
Date Fri, 30 May 2008 14:10:14 GMT
Hi Prakash,

Could you indicate which version of ODE you're using? Did you build it
yourself from a branch or are you using the official 1.1.1? You could be
hitting a bug we've had before and that has been fixed now due to the
absence of response message to your invoke.

Thanks,
Matthieu

On Thu, May 29, 2008 at 9:22 PM, Prakash Reddy Bande <prakashr@altair.com>
wrote:

> 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<http://www.example.org/HTAssignUsersPT/%7DAssignUserServiceODE>-->
> BpelProcess[{http://HTCreateAssembly}HTCreateAssembly-41]
>
> DEBUG - GeronimoLog.debug(66) | Routed: svcQname
> {http://www.example.org/HTAssignUsersPT/}AssignUserServiceODE<http://www.example.org/HTAssignUsersPT/%7DAssignUserServiceODE>-->
> 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<http://www.example.org/HTAssignUsersPT/%7DAssignUserServiceODE.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<http://www.example.org/HTAssignUsersPT/%7DAssignUserServiceODE>-->
> 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
>
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message