Hi,

of course. Sorry for not attaching it the first time. I added a service
for both ports (request and callback). I also tried it with two services
which resulted in a different error message but still didn't work.

Daniel

Alex Boisvert schrieb:
> Hi Daniel,
>
> We'll need your full BPEL deployment bundle to diagnose.  For some reason,
> the engine thinks you're doing a process-to-process invocation instead of
> calling back the client.    We don't have enough information to tell why.
>
> alex
>
>
> On Thu, Nov 27, 2008 at 5:23 AM, Daniel Luebke <
> [EMAIL PROTECTED]> wrote:
>
>   
>> 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
>>
>>     
>
>   


-- 
Dr.-Ing. Daniel Lübke
Leibniz Universität Hannover
Welfengarten 1
D-30167 Hannover
Tel. +49 511 762 19672
Fax  +49 511 762 19679

<?xml version="1.0" encoding="ASCII"?>
<extensionmodel:ExtensionMap xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:extensionmodel="http:///extensionmodel.ecore"; xmlns:org.eclipse.bpel.ui.uiextensionmodel="http:///org/eclipse/bpel/ui/uiextensionmodel.ecore"; namespace="http://org.eclipse.bpel.ui/";>
  <extensions>
    <extendedObject href="AsyncBPEL.bpel#//@variables/@children.0"/>
    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
  </extensions>
  <extensions>
    <extendedObject href="AsyncBPEL.bpel#//@variables/@children.1"/>
    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
  </extensions>
  <extensions>
    <extendedObject href="AsyncBPEL.bpel#//@activity"/>
    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
  </extensions>
  <extensions>
    <extendedObject href="AsyncBPEL.bpel#//@activity/@activities.0"/>
    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
  </extensions>
  <extensions>
    <extendedObject href="AsyncBPEL.bpel#//@activity/@activities.2"/>
    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
  </extensions>
  <extensions>
    <extendedObject href="AsyncBPEL.bpel#/"/>
    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1227789288453"/>
  </extensions>
  <extensions>
    <extendedObject href="AsyncBPEL.bpel#//@activity/@activities.1"/>
    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
  </extensions>
  <extensions>
    <extendedObject href="AsyncBPEL.bpel#//@activity/@activities.1/@copy.1"/>
    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
  </extensions>
  <extensions>
    <extendedObject href="AsyncBPEL.bpel#//@activity/@activities.1/@copy.0"/>
    <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
  </extensions>
</extensionmodel:ExtensionMap>
<?xml version="1.0"?>
<definitions name="AsyncBPEL"
        targetNamespace="http://asyncbpel";
        xmlns:tns="http://asyncbpel";
        xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype";
        xmlns="http://schemas.xmlsoap.org/wsdl/";
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
        xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable";>

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     TYPE DEFINITION - List of services participating in this BPEL process 
     The default output of the BPEL designer uses strings as input and 
     output to the BPEL Process. But you can define or import any XML 
     Schema type and us them as part of the message types.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
    <types>  
        <schema attributeFormDefault="unqualified" 
                elementFormDefault="qualified" 
                targetNamespace="http://asyncbpel"; 
                xmlns="http://www.w3.org/2001/XMLSchema";
                >
                
            <element name="AsyncBPELRequest">
                <complexType>
                    <sequence>
                        <element name="input" type="string" />
                    </sequence>
                </complexType>
            </element>
                  
            <element name="AsyncBPELResponse">
                <complexType>
                    <sequence>
                        <element name="result" type="string"/>
                    </sequence>
                </complexType>
            </element>
            
        </schema>
    </types>
  
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     MESSAGE TYPE DEFINITION - Definition of the message types used as 
     part of the port type defintions
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
    <message name="AsyncBPELRequestMessage">
        <part name="payload" element="tns:AsyncBPELRequest"/>
    </message>
    
    <message name="AsyncBPELResponseMessage">
        <part name="payload" element="tns:AsyncBPELResponse"/>
    </message>


<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     PORT TYPE DEFINITION - A port type groups a set of operations into
     a logical service unit.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!-- portType implemented by the AsyncBPEL BPEL process -->
    <portType name="AsyncBPEL">
        <operation name="initiate">
            <input message="tns:AsyncBPELRequestMessage"/>
        </operation>
    </portType>

    <!-- portType implemented by the requester of AsyncBPEL BPEL process 
         for asynchronous callback purposes
         -->
    <portType name="AsyncBPELCallback">
        <operation name="onResult">
            <input message="tns:AsyncBPELResponseMessage"/>
        </operation>
    </portType>


<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     PARTNER LINK TYPE DEFINITION
         the AsyncBPEL partnerLinkType binds the provider and
         requester portType into an asynchronous conversation.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
    <plnk:partnerLinkType name="AsyncBPEL">
        <plnk:role name="AsyncBPELProvider" portType="tns:AsyncBPEL"/>
        <plnk:role name="AsyncBPELRequester" portType="tns:AsyncBPELCallback"/>
    </plnk:partnerLinkType>
    
       
    <binding name="AsyncBPELServiceBinding" type="tns:AsyncBPEL">
    	<soap:binding style="document"
    		transport="http://schemas.xmlsoap.org/soap/http"; />
    	<operation name="initiate">
    		<soap:operation soapAction="http://asyncbpel/initiate"; />
    		<input>
    			<soap:body use="literal" />
    		</input>
    	</operation>
    </binding>
    <binding name="AsyncBPELCallbackBinding"
    	type="tns:AsyncBPELCallback">
    	<soap:binding style="document"
    		transport="http://schemas.xmlsoap.org/soap/http"; />
    	<operation name="onResult">
    		<soap:operation soapAction="http://asyncbpel/onResult"; />
    		<input>
    			<soap:body use="literal" />
    		</input>
    	</operation>
    </binding>
    <service name="AsyncBPELService">
    	<port name="AsyncBPELServicePort" binding="tns:AsyncBPELServiceBinding">
    		<soap:address location="http://localhost:8080/ode/processes/AsyncBPEL"; />
    	</port>

    </service>
    <service name="AsyncBPELCallbackService">
    	<port name="AsyncBPELCallbackPort" binding="tns:AsyncBPELCallbackBinding">
    		<soap:address location="http://www.example.org/"; />
    	</port>
    </service>
</definitions>
<?xml version="1.0" encoding="UTF-8"?>
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"; xmlns:asyncbpel="http://asyncbpel";>
  <process name="asyncbpel:AsyncBPEL">
    <process-events generate="all"/>
    <provide partnerLink="client">
      <service name="asyncbpel:AsyncBPELService" port="AsyncBPELServicePort"/>
    </provide>
    <invoke partnerLink="client">
      <service name="asyncbpel:AsyncBPELCallbackService" port="AsyncBPELCallbackPort"/>
    </invoke>
  </process>
</deploy>

Reply via email to