ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Prakash Reddy Bande" <praka...@altair.com>
Subject Invoke throws NullPointerException
Date Fri, 30 May 2008 04:22:53 GMT
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

 


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