Hello,
I'm struggling with following issue for some time: I have two async bpel
processes (MainTestProcess, ESignProcess). From MainTestProcess I am calling
ESIgnProcess which subsequently calls back main process. Everything goes
fine until ESignProcess calls back MainTestProcess where I get following
error:
2010-10-05 22:01:13,281 ERROR - INVOKE.run(208) |
org.apache.ode.bpel.common.FaultException:
{http://docs.oasis-open.org/wsbpel/2.0/process/executable}uninitializedPartnerRole
2010-10-05 22:01:13,281 DEBUG - HibernateDao.entering(54) | entering
ProcessInstanceDaoImpl.getProcess
2010-10-05 22:01:13,281 DEBUG - HibernateDao.entering(54) | entering
ProcessDaoImpl.ProcessDaoImpl
2010-10-05 22:01:13,281 DEBUG - HibernateDao.entering(54) | entering
ProcessInstanceDaoImpl.getProcess
2010-10-05 22:01:13,281 DEBUG - HibernateDao.entering(54) | entering
ProcessDaoImpl.ProcessDaoImpl
2010-10-05 22:01:13,281 DEBUG - DebugBpelEventListener.onEvent(50) |
ActivityExecEndEvent:
Type = activityLifecycle
ActivityId = 18
ActivityName = callbackClient
ActivityType = OInvoke
ActivityDeclarationId = 45
ScopeId = 2213
ScopeName = callbackClient
ScopeDeclarationId = 44
ParentScopeId = 2212
ParentScopesNames = [callbackClient, __PROCESS_SCOPE:ESignProcess]
ProcessInstanceId = 2005
ProcessId = {http://mycomp.com/esign}ESignProcess-7
ProcessName = {http://mycomp.com/esign}ESignProcess
Timestamp = Tue Oct 05 22:01:13 CEST 2010
LineNo = 112
Class = class org.apache.ode.bpel.evt.ActivityExecEndEvent
I'm using apache ode 1.3.4, and here is my ESignProcess.bpel:
<bpel:process name="ESignProcess"
targetNamespace="http://mycomp.com/esign"
suppressJoinFailure="yes"
xmlns:tns="http://mycomp.com/esign"
xmlns:esign="http://www.mycomp.com/wsdl/process/esign"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
>
<!-- Import the client WSDL -->
<bpel:import namespace="http://www.mycomp.com/wsdl/process/esign"
location="../test_main/ESignProcessArtifacts.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
<bpel:import location="ESignProcessArtifacts.wsdl"
namespace="http://www.mycomp.com/wsdl/process/esign"
importType="http://schemas.xmlsoap.org/wsdl/" />
<!-- =================================================================
-->
<!-- PARTNERLINKS
-->
<!-- List of services participating in this BPEL process
-->
<!-- =================================================================
-->
<bpel:partnerLinks>
<!--
The 'client' role represents the requester of this service. It is
used for callback. The location and correlation information
associated
with the client role are automatically set using WS-Addressing.
-->
<bpel:partnerLink name="client"
partnerLinkType="esign:ESignProcess"
myRole="ESignProcessProvider"
partnerRole="ESignProcessRequester"
/>
</bpel:partnerLinks>
<!-- =================================================================
-->
<!-- VARIABLES
-->
<!-- List of messages and XML documents used within this BPEL process
-->
<!-- =================================================================
-->
<bpel:variables>
<!-- Reference to the message passed as input during initiation -->
<bpel:variable name="input"
messageType="esign:ESignProcessRequestMessage"/>
<!-- Reference to the message that will be sent back to the
requester during callback
-->
<bpel:variable name="output"
messageType="esign:ESignProcessResponseMessage"/>
</bpel:variables>
<!-- =================================================================
-->
<!-- ORCHESTRATION LOGIC
-->
<!-- Set of activities coordinating the flow of messages across the
-->
<!-- services integrated within this business process
-->
<!-- =================================================================
-->
<bpel:correlationSets>
<bpel:correlationSet name="CorrelationSet"
properties="esign:corr"></bpel:correlationSet>
</bpel:correlationSets>
<bpel:sequence name="main">
<!-- Receive input from requestor.
Note: This maps to operation defined in ESignProcess.wsdl
-->
<bpel:receive name="receiveInput" partnerLink="client"
createInstance="yes" operation="initiate"
portType="esign:ESignProcess" variable="input">
<bpel:correlations>
<bpel:correlation set="CorrelationSet"
initiate="yes"></bpel:correlation>
</bpel:correlations>
</bpel:receive>
<!-- Asynchronous callback to the requester.
Note: the callback location and correlation id is transparently
handled
using WS-addressing.
-->
<bpel:assign validate="no" name="AssignInput">
<bpel:copy>
<bpel:from>
<bpel:literal
xml:space="preserve"><tns:ESignProcessResponse
xmlns:tns="http://www.mycomp.com/wsdl/process/esign"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tns:result></tns:result>
</tns:ESignProcessResponse>
</bpel:literal>
</bpel:from>
<bpel:to variable="output" part="payload"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from part="payload" variable="input">
<bpel:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:input]]></bpel:query>
</bpel:from>
<bpel:to part="payload" variable="output">
<bpel:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[esign:result]]></bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:receive name="ReceiveData1" partnerLink="client"
operation="receive" portType="esign:ESignProcess" variable="input">
<bpel:correlations>
<bpel:correlation set="CorrelationSet"
initiate="no"></bpel:correlation>
</bpel:correlations>
</bpel:receive>
<bpel:assign validate="no" name="AssignReceived">
<bpel:copy>
<bpel:from>
<![CDATA[concat($input.payload/tns:input,
$output.payload/tns:result)]]>
</bpel:from>
<bpel:to part="payload" variable="output">
<bpel:query
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[esign:result]]>
</bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:invoke name="callbackClient"
partnerLink="client" operation="onResult"
portType="esign:ESignProcessCallback" inputVariable="output"/>
</bpel:sequence>
</bpel:process>
I have also tried to add initializePartnerRole="yes" to partner link
declaration, but this didn't help. InitializePartnerRole="yes" means that
partner role will be automat. initialized from service-ref element in SOAP
message? What am i missing?
Thanks.
Vlado
--
View this message in context:
http://old.nabble.com/Callback-from-async-process-tp29890946p29890946.html
Sent from the Apache Ode User mailing list archive at Nabble.com.