ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Luebke <daniel.lue...@inf.uni-hannover.de>
Subject Problem calling/executing async BPEL Process
Date Thu, 27 Nov 2008 13:23:52 GMT
Hi everyone,

I'm new to this list and have read much of the archives while looking
for a solution to my problem. My name is Daniel and I'm working at the
University of Hannover, Germany. For a lecture, I want to prepare an
async BPEL process running on top of Apache ODE.

I created the process using the Eclipse BPEL Plug-in. The receive and
invoke activities look like this:

<bpel:receive name="receiveInput" partnerLink="client"
			portType="tns:AsyncBPEL" operation="initiate" variable="input"
			createInstance="yes">
		</bpel:receive>

<bpel:invoke name="callbackClient" partnerLink="client"
			portType="tns:AsyncBPELCallback" operation="onResult" inputVariable="output" />


A comment states that WS-Addressing should care about the endpoint for
the final invoke. However, if I'm calling the process from an Axis
client a NullPointerException is thrown. The request, complete with
WS-Addressing headers looks like this:

<?xml version="1.0" encoding="http://schemas.xmlsoap.org/soap/envelope/"
standalone="no"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:To>http://localhost:8081/ode/processes/AsyncBPEL</wsa:To>
<wsa:ReplyTo>
<wsa:Address>http://130.75.33.229:7777/axis2/services/anonService2/</wsa:Address>
</wsa:ReplyTo>
<wsa:MessageID>urn:uuid:4ABAF38975E8ACD1DC1227791017047</wsa:MessageID>
<wsa:Action>http://asyncbpel/initiate</wsa:Action>
</soapenv:Header>
<soapenv:Body>
<axis2ns1:AsyncBPELRequest xmlns:axis2ns1="http://asyncbpel">
<axis2ns2:input xmlns:axis2ns2="http://asyncbpel">Hallo</axis2ns2:input>
</axis2ns1:AsyncBPELRequest>
</soapenv:Body>
</soapenv:Envelope>

The log from ODE is as follows:
DEBUG - GeronimoLog.debug(66) | Found a header in incoming message,
checking if there are endpoints there.
DEBUG - GeronimoLog.debug(66) | Received one-way message for
AsyncBPEL.{http://asyncbpel}initiate
DEBUG - GeronimoLog.debug(66) | Starting transaction.
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{http://asyncbpel}AsyncBPELService -->
BpelProcess[{http://asyncbpel}AsyncBPEL-4]
DEBUG - GeronimoLog.debug(66) | ODE routed to operation Operation:
name=initiate
style=ONE_WAY,0
Input: name=null
Message: name={http://asyncbpel}AsyncBPELRequestMessage
Part: name=payload
elementName={http://asyncbpel}AsyncBPELRequest from service
{http://asyncbpel}AsyncBPELService
DEBUG - GeronimoLog.debug(66) | Invoking ODE using MEX
{MyRoleMex#hqejbhcnphr3s853g4ob0q [Client hqejbhcnphr3s853g4ob0p]
calling {http://asyncbpel}AsyncBPELService.initiate(...)}
DEBUG - GeronimoLog.debug(66) | Message content:  <?xml version="1.0"
encoding="UTF-8"?>
<message><payload><AsyncBPELRequest xmlns="http://asyncbpel"
xmlns:axis2ns1="http://asyncbpel"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><input
xmlns:axis2ns2="http://asyncbpel">Hallo</input></AsyncBPELRequest></payload></message>
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{http://asyncbpel}AsyncBPELService -->
BpelProcess[{http://asyncbpel}AsyncBPEL-4]
DEBUG - GeronimoLog.debug(66) | invoke() EPR= null ==>
BpelProcess[{http://asyncbpel}AsyncBPEL-4]
DEBUG - GeronimoLog.debug(66) | Commiting ODE MEX
{MyRoleMex#hqejbhcnphr3s853g4ob0q [Client hqejbhcnphr3s853g4ob0p]
calling {http://asyncbpel}AsyncBPELService.initiate(...)}
DEBUG - GeronimoLog.debug(66) | Commiting transaction.
DEBUG - GeronimoLog.debug(66) | Releasing mex hqejbhcnphr3s853g4ob0q
DEBUG - GeronimoLog.debug(66) | >>
handleWorkEvent(jobData={mexid=hqejbhcnphr3s853g4ob0q,
pid={http://asyncbpel}AsyncBPEL-4, type=INVOKE_INTERNAL})
DEBUG - GeronimoLog.debug(66) | InvokeInternal event for mexid
hqejbhcnphr3s853g4ob0q
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: 12.initiate: MSG RCVD keys=[]
mySessionId=null partnerSessionId=null
DEBUG - GeronimoLog.debug(66) | INPUTMSG: 12.initiate: routing failed,
CREATING NEW INSTANCE
DEBUG - GeronimoLog.debug(66) | BpelRuntimeContextImpl created for
instance 301. INDEXED STATE={}
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: USING
CORRELATOR 12.initiate
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#hqejbhcnphr3s853g4ob0q [Client
hqejbhcnphr3s853g4ob0p] calling
{http://asyncbpel}AsyncBPELService.initiate(...)}
DEBUG - GeronimoLog.debug(66) | INVOKING PARTNER:
partnerLink={PartnerLinkInstance
partnerLinkDecl=OPartnerLink#12,scopeInstanceId=351}, op=onResult
channel=null)
DEBUG - GeronimoLog.debug(66) | INVOKE PARTNER (SEP):
sessionId=hqejbhcnphr3s853g4ob0s partnerSessionId=null
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{http://asyncbpel}AsyncBPELService -->
BpelProcess[{http://asyncbpel}AsyncBPEL-4]
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{http://asyncbpel}AsyncBPELService -->
BpelProcess[{http://asyncbpel}AsyncBPEL-4]
DEBUG - GeronimoLog.debug(66) | Invoking in a p2p interaction,
partnerrole {PartnerRoleMex#hqejbhcnphr3s853g4ob0t [PID
{http://asyncbpel}AsyncBPEL-4] calling null.onResult(...)} - myrole
{MyRoleMex#hqejbhcnphr3s853g4ob0u [Client hqejbhcnphr3s853g4ob0t]
calling {http://asyncbpel}AsyncBPELService.onResult(...)}
DEBUG - GeronimoLog.debug(66) | Setting myRoleMex session ids for p2p
interaction, mySession null - partnerSess hqejbhcnphr3s853g4ob0s
DEBUG - GeronimoLog.debug(66) | SET MEX property
org.apache.ode.bpel.partnerRoleSessionId = hqejbhcnphr3s853g4ob0s
DEBUG - GeronimoLog.debug(66) | Routed: svcQname
{http://asyncbpel}AsyncBPELService -->
BpelProcess[{http://asyncbpel}AsyncBPEL-4]
DEBUG - GeronimoLog.debug(66) | invoke() EPR= null ==>
BpelProcess[{http://asyncbpel}AsyncBPEL-4]
ERROR - GeronimoLog.error(108) | Method "run" in class
"org.apache.ode.bpel.runtime.INVOKE" threw an unexpected exception.
java.lang.NullPointerException

I'm a little bit surpised by the "one-way message" but I wonder why ODE
cannot resolve the final invoke.
Has anyone any ideas?

Thanks in advance

Daniel

Mime
View raw message