You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Simon Sekat <se...@gmail.com> on 2007/09/18 15:08:33 UTC

I need help to make the Magic Session sample work in ServiceMix

I created a service assembly that includes two service units - a HTTP
service unit and an ODE service unit.  The HTTP service unit merely proxies
requests coming into the ODE service unit.

After I successfully deployed those two service units into ServiceMix, I
have the following URLs available

http://localhost:8080/ode/processes/MSResponderService/
http://localhost:8080/ode/processes/MSMainExecuteService/
http://localhost:8080/ode/processes/MSMainService/

But when I invoke the ODE by sending the following soap request to
http://localhost:8080/ode/processes/MSMainExecuteService (as instructed by
the readme.txt came along with the magic session), I got an error saying
that "Error in deployment descriptor for process unknown partner link
responderPartnerLink".

Please help me making the magic session sample work.  I need this to assess
how ODE can be used to correlate requests with sessions.  Thank you.

------------------------------- <soap request>
-------------------------------------
<soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/"
xmlns:unit="http://ode/bpel/unit-test.wsdl">
   <soapenv:Header/>
   <soapenv:Body>
      <unit:execute>fire!</unit:execute>
   </soapenv:Body>
</soapenv:Envelope>

------------------------------- deploy.xml-------------------------------------
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
    xmlns:main="http://ode/bpel/unit-test "
    xmlns:mws="http://ode/bpel/unit-test.wsdl"
    xmlns:resp="http://ode/bpel/responder">

    <process name="main:MagicSessionMain">
        <provide partnerLink="executePartnerLink">
            <service name="mws:MSMainExecuteService" port="MSExecutePort"/>
        </provide>
        <provide partnerLink="responderPartnerLink">
            <service name="mws:MSMainService" port="MSMainPort"/>
        </provide>
        <invoke partnerLink="responderPartnerLink">
            <service name="mws:MSResponderService" port="MSResponderPort"/>
        </invoke>
    </process>
    <process name="resp:MagicSessionResponder">
                <type>resp:MagicSessionResponder</type>
        <provide partnerLink="mainPartnerLink">
            <service name="mws:MSResponderService" port="MSResponderPort"/>
        </provide>
        <invoke partnerLink="mainPartnerLink">
            <service name="mws:MSMainService" port="MSMainPort"/>
        </invoke>
    </process>
</deploy>


--------------------------------
main.wsdl------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<!--
    example copied from

https://svn.apache.org/viewvc/ode/trunk/distro/src/examples-war/MagicSession/
  -->

<wsdl:definitions
        targetNamespace="http://ode/bpel/unit-test.wsdl"
        xmlns="http://schemas.xmlsoap.org/wsdl/"
        xmlns:tns="http://ode/bpel/unit-test.wsdl"
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns:wsa="http://www.w3.org/2005/08/addressing"
        xmlns:smix="http://servicemix.org/wsdl/jbi/"
        xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">

    <types>
        <xsd:element name="result" type="xsd:string"/>
        <xsd:element name="execute" type="xsd:string"/>
        <xsd:element name="callback" type="xsd:string"/>
        <xsd:element name="doubleCallback" type="xsd:string"/>
        <xsd:element name="tripleCallback" type="xsd:string"/>
        <xsd:element name="initiate" type="xsd:string"/>
        <xsd:element name="doubleCall" type="xsd:string"/>
        <xsd:element name="tripleCall" type="wsa:EndpointReference"/>
    </types>

    <wsdl:message name="ExecuteMessage">
        <wsdl:part name="payload" element="tns:execute"/>
    </wsdl:message>

    <wsdl:message name="CallbackMessage">
        <wsdl:part name="payload" element="tns:callback"/>
    </wsdl:message>

    <wsdl:message name="DoubleCallbackMessage">
        <wsdl:part name="payload" element="tns:doubleCallback"/>
    </wsdl:message>

    <wsdl:message name="TripleCallbackMessage">
        <wsdl:part name="payload" element="tns:tripleCallback"/>
    </wsdl:message>

    <wsdl:message name="ResultMessage">
        <wsdl:part name="ack" element="tns:result"/>
    </wsdl:message>

    <wsdl:message name="InitiateMessage">
        <wsdl:part name="payload" element="tns:initiate"/>
    </wsdl:message>

    <wsdl:message name="DoubleCallMessage">
        <wsdl:part name="payload" element="tns:doubleCall"/>
    </wsdl:message>

    <wsdl:message name="TripleCallMessage">
        <wsdl:part name="payload" element="wsa:EndpointReference"/>
    </wsdl:message>

    <wsdl:portType name="MSExecutePortType">
        <wsdl:operation name="execute">
            <wsdl:input message="tns:ExecuteMessage" name="Execute"/>
            <wsdl:output message="tns:ResultMessage" name="Result"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:portType name="MSMainPortType">
        <wsdl:operation name="callback">
            <wsdl:input message="tns:CallbackMessage" name="Callback"/>
        </wsdl:operation>
        <wsdl:operation name="doubleCallback">
            <wsdl:input message="tns:DoubleCallbackMessage"
name="DoubleCallback"/>
        </wsdl:operation>
        <wsdl:operation name="tripleCallback">
            <wsdl:input message="tns:TripleCallbackMessage"
name="TripleCallback"/>
        </wsdl:operation>
    </wsdl:portType>

    <wsdl:portType name="MSResponderPortType">
        <wsdl:operation name="initiate">
            <wsdl:input message="tns:InitiateMessage" name="Callback"/>
        </wsdl:operation>
        <wsdl:operation name="doubleCall">
            <wsdl:input message="tns:DoubleCallMessage"
name="DoubleCallback"/>
        </wsdl:operation>
        <wsdl:operation name="EndpointReference">
            <wsdl:input message="tns:TripleCallMessage"
name="EndpointReference"/>
        </wsdl:operation>
    </wsdl:portType>
<!--
    <wsdl:binding name="MSExecuteBinding" type="tns:MSExecutePortType">
        <soap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="execute">
            <soap:operation soapAction="" style="document"/>
            <wsdl:input>
                <soap:body namespace="http://ode/bpel/unit-test.wsdl"
use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body namespace="http://ode/bpel/unit-test.wsdl"
use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="MSMainBinding" type="tns:MSMainPortType">
        <soap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="callback">
            <soap:operation soapAction="" style="document"/>
            <wsdl:input>
                <soap:body namespace="http://ode/bpel/unit-test.wsdl"
use="literal"/>
            </wsdl:input>
        </wsdl:operation>
        <wsdl:operation name="doubleCallback">
            <soap:operation soapAction="" style="document"/>
            <wsdl:input>
                <soap:body namespace="http://ode/bpel/unit-test.wsdl"
use="literal"/>
            </wsdl:input>
        </wsdl:operation>
        <wsdl:operation name="tripleCallback">
            <soap:operation soapAction="" style="document"/>
            <wsdl:input>
                <soap:body namespace="http://ode/bpel/unit-test.wsdl"
use="literal"/>
            </wsdl:input>
        </wsdl:operation>
    </wsdl:binding>

    <wsdl:binding name="MSResponderBinding" type="tns:MSResponderPortType">
        <soap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="initiate">
            <soap:operation soapAction="" style="document"/>
            <wsdl:input>
                <soap:body namespace="http://ode/bpel/unit-test.wsdl"
use="literal"/>
            </wsdl:input>
        </wsdl:operation>
        <wsdl:operation name="doubleCall">
            <soap:operation soapAction="" style="document"/>
            <wsdl:input>
                <soap:body namespace="http://ode/bpel/unit-test.wsdl"
use="literal"/>
            </wsdl:input>
        </wsdl:operation>
        <wsdl:operation name="EndpointReference">
            <soap:operation soapAction="" style="document"/>
            <wsdl:input>
                <soap:body namespace="http://ode/bpel/unit-test.wsdl"
use="literal"/>
            </wsdl:input>
        </wsdl:operation>
    </wsdl:binding>

    <wsdl:service name="MSMainExecuteService">
        <wsdl:port name="MSExecutePort" binding="tns:MSExecuteBinding">
            <soap:address location="
http://localhost:8080/ode/processes/MSMainExecuteService"/>
        </wsdl:port>
    </wsdl:service>

    <wsdl:service name="MSMainService">
        <wsdl:port name="MSMainPort" binding="tns:MSMainBinding">
            <soap:address location="
http://localhost:8080/ode/processes/MSMainService"/>
        </wsdl:port>
    </wsdl:service>

    <wsdl:service name="MSResponderService">
        <wsdl:port name="MSResponderPort" binding="tns:MSResponderBinding">
            <soap:address location="
http://localhost:8080/ode/processes/MSResponderService"/>
        </wsdl:port>
    </wsdl:service>
-->

    <plnk:partnerLinkType name="ResponderPartnerLinkType">
        <plnk:role name="responder" portType="tns:MSResponderPortType"/>
        <plnk:role name="main" portType="tns:MSMainPortType"/>
    </plnk:partnerLinkType>

    <plnk:partnerLinkType name="ExecutePartnerLinkType">
        <plnk:role name="executor" portType="tns:MSExecutePortType"/>
    </plnk:partnerLinkType>

</wsdl:definitions>

------------------------------
main.bpel--------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<process name="MagicSessionMain"
         targetNamespace="http://ode/bpel/unit-test"
         xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
         xmlns:tns="http://ode/bpel/unit-test"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
         xmlns:test="http://ode/bpel/unit-test.wsdl">

  <import location="Main.wsdl" namespace="http://ode/bpel/unit-test.wsdl"
     importType="http://schemas.xmlsoap.org/wsdl/" />

  <partnerLinks>
    <partnerLink name="responderPartnerLink"
partnerLinkType="test:ResponderPartnerLinkType"
                 myRole="main" partnerRole="responder"
initializePartnerRole="yes"/>
    <partnerLink name="executePartnerLink"
partnerLinkType="test:ExecutePartnerLinkType"
                 myRole="executor"/>
  </partnerLinks>

  <variables>
    <variable name="dummy" messageType="test:ExecuteMessage"/>
    <variable name="dummy2" messageType="test:InitiateMessage"/>
    <variable name="dummy3" messageType="test:CallbackMessage"/>
    <variable name="dummy4" messageType="test:DoubleCallMessage"/>
    <variable name="dummy5" messageType="test:DoubleCallbackMessage"/>
    <variable name="eprmessage" messageType="test:TripleCallMessage"/>
    <variable name="myepr" messageType="test:TripleCallbackMessage"/>
    <variable name="result" messageType="test:ResultMessage"/>
  </variables>

  <sequence>
    <!-- Start message -->
    <receive name="start" partnerLink="executePartnerLink"
             portType="test:MSExecutePortType" operation="execute"
createInstance="yes" variable="dummy"/>

    <!-- Initializing message, starting the responder process with the magic
session
         and expecting a callback -->
    <assign>
      <copy>
        <from>123</from>
        <to variable="dummy2" part="payload"/>
      </copy>
    </assign>
    <invoke name="initiate" partnerLink="responderPartnerLink"
portType="test:MSResponderPortType"
            operation="initiate" inputVariable="dummy2"/>

    <receive name="callback" partnerLink="responderPartnerLink"
             portType="test:MSMainPortType" operation="callback"
variable="dummy3"/>

    <!-- Initializing message, calling our partner again with magic session
(double invocation) -->
    <assign>
      <copy>
        <from>123</from>
        <to variable="dummy4" part="payload"/>
      </copy>
    </assign>
    <invoke name="get-endpoint" partnerLink="responderPartnerLink"
portType="test:MSResponderPortType"
            operation="doubleCall" inputVariable="dummy4"/>

    <receive name="doubleCallback" partnerLink="responderPartnerLink"
             portType="test:MSMainPortType" operation="doubleCallback"
variable="dummy5"/>

    <!-- Sending our endpoint explicitly to have our partner calling us back
using it
         (demonstrating assignment) -->
    <assign>
      <copy>
        <from partnerLink="responderPartnerLink"
endpointReference="myRole"/>
        <to variable="eprmessage" part="payload"/>
      </copy>
    </assign>
    <invoke name="eprPassing" partnerLink="responderPartnerLink"
portType="test:MSResponderPortType"
            operation="EndpointReference" inputVariable="eprmessage"/>

    <receive name="tripleCallback" partnerLink="responderPartnerLink"
             portType="test:MSMainPortType" operation="tripleCallback"
variable="myepr"/>

    <!-- Done. -->
    <assign>
      <copy>
        <from>'OK'</from>
        <to variable="result" part="ack"/>
      </copy>
    </assign>
    <reply name="end" partnerLink="executePartnerLink"
           portType="test:MSExecutePortType" operation="execute"
variable="result"/>

  </sequence>
</process>

--------------------------------
Responder.bpel----------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<!--
    example copied from

https://svn.apache.org/viewvc/ode/trunk/distro/src/examples-war/MagicSession/
  -->

<process name="MagicSessionResponder"
         targetNamespace="http://ode/bpel/responder"
         xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
         xmlns:tns="http://ode/bpel/responder"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         xmlns:resp="http://ode/bpel/unit-test.wsdl">

  <import location="Main.wsdl" namespace="http://ode/bpel/unit-test.wsdl"
     importType="http://schemas.xmlsoap.org/wsdl/" />

  <partnerLinks>
    <partnerLink name="mainPartnerLink"
partnerLinkType="resp:ResponderPartnerLinkType"
                 myRole="responder" partnerRole="main"
initializePartnerRole="yes"/>
  </partnerLinks>

  <variables>
    <variable name="dummy2" messageType="resp:InitiateMessage"/>
    <variable name="dummy3" messageType="resp:CallbackMessage"/>
    <variable name="dummy4" messageType="resp:DoubleCallMessage"/>
    <variable name="dummy5" messageType="resp:DoubleCallbackMessage"/>
    <variable name="eprmessage" messageType="resp:TripleCallMessage"/>
    <variable name="dummy6" messageType="resp:TripleCallbackMessage"/>
  </variables>

  <sequence>
    <!-- Starting process and first callback -->
    <receive name="start" partnerLink="mainPartnerLink" variable="dummy2"
             portType="resp:MSResponderPortType" operation="initiate"
createInstance="yes"/>
    <assign>
      <copy>
        <from>123</from>
        <to variable="dummy3" part="payload"/>
      </copy>
    </assign>
    <invoke name="callback" partnerLink="mainPartnerLink"
           portType="resp:MSMainPortType" operation="callback"
inputVariable="dummy3"/>

    <!-- Second callback -->
    <receive name="doubleCall" partnerLink="mainPartnerLink"
variable="dummy4"
             portType="resp:MSResponderPortType" operation="doubleCall"/>
    <assign>
      <copy>
        <from>123</from>
        <to variable="dummy5" part="payload"/>
      </copy>
    </assign>
    <invoke name="doubleCallback" partnerLink="mainPartnerLink"
           portType="resp:MSMainPortType" operation="doubleCallback"
inputVariable="dummy5"/>

    <!-- Callback on the epr explicitly provided by partner in the message
         (demonstrating assignment) -->
    <receive name="eprPassing" partnerLink="mainPartnerLink"
variable="eprmessage"
             portType="resp:MSResponderPortType"
operation="EndpointReference"/>
    <assign>
      <copy>
        <from variable="eprmessage" part="payload"/>
        <to partnerLink="mainPartnerLink"/>
      </copy>
      <copy>
        <from>123</from>
        <to variable="dummy6" part="payload"/>
      </copy>
    </assign>
    <invoke name="tripleCallback" partnerLink="mainPartnerLink"
           portType="resp:MSMainPortType" operation="tripleCallback"
inputVariable="dummy6"/>

  </sequence>
</process>


-- 

Simon S.

Re: I need help to make the Magic Session sample work in ServiceMix

Posted by Alex Boisvert <bo...@intalio.com>.
I created an enhancement request to track this:
https://issues.apache.org/jira/browse/ODE-184

On 9/19/07, Simon Sekat <se...@gmail.com> wrote:
>
> Thank you, Alex.
>
> Please anyone to finish this important piece of work, so that magic
> session
> can work in JBI.
>
> On 9/18/07, Alex Boisvert <bo...@intalio.com> wrote:
> >
> > Hi Simon,
> >
> > The stateful exchange protocol (aka magic sessions) is not currently
> > supported through JBI.  It would require minor additions to the JBI
> > integration in Ode, as probably the Http binding component in
> ServiceMix.
> > Not a huge deal, we just need somebody motivated enough! :)
> >
> > alex
> >
> >
> > On 9/18/07, Simon Sekat <se...@gmail.com> wrote:
> > >
> > > I created a service assembly that includes two service units - a HTTP
> > > service unit and an ODE service unit.  The HTTP service unit merely
> > > proxies
> > > requests coming into the ODE service unit.
> > >
> > > After I successfully deployed those two service units into ServiceMix,
> I
> > > have the following URLs available
> > >
> > > http://localhost:8080/ode/processes/MSResponderService/
> > > http://localhost:8080/ode/processes/MSMainExecuteService/
> > > http://localhost:8080/ode/processes/MSMainService/
> > >
> > > But when I invoke the ODE by sending the following soap request to
> > > http://localhost:8080/ode/processes/MSMainExecuteService (as
> instructed
> > by
> > > the readme.txt came along with the magic session), I got an error
> saying
> > > that "Error in deployment descriptor for process unknown partner link
> > > responderPartnerLink".
> > >
> > > Please help me making the magic session sample work.  I need this to
> > > assess
> > > how ODE can be used to correlate requests with sessions.  Thank you.
> > >
> > > ------------------------------- <soap request>
> > > -------------------------------------
> > > <soapenv:Envelope xmlns:soapenv="
> > > http://schemas.xmlsoap.org/soap/envelope/"
> > > xmlns:unit="http://ode/bpel/unit-test.wsdl">
> > >    <soapenv:Header/>
> > >    <soapenv:Body>
> > >       <unit:execute>fire!</unit:execute>
> > >    </soapenv:Body>
> > > </soapenv:Envelope>
> > >
> > > -------------------------------
> > > deploy.xml-------------------------------------
> > > <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
> > >     xmlns:main="http://ode/bpel/unit-test "
> > >     xmlns:mws="http://ode/bpel/unit-test.wsdl"
> > >     xmlns:resp="http://ode/bpel/responder">
> > >
> > >     <process name="main:MagicSessionMain">
> > >         <provide partnerLink="executePartnerLink">
> > >             <service name="mws:MSMainExecuteService"
> > > port="MSExecutePort"/>
> > >         </provide>
> > >         <provide partnerLink="responderPartnerLink">
> > >             <service name="mws:MSMainService" port="MSMainPort"/>
> > >         </provide>
> > >         <invoke partnerLink="responderPartnerLink">
> > >             <service name="mws:MSResponderService"
> > > port="MSResponderPort"/>
> > >         </invoke>
> > >     </process>
> > >     <process name="resp:MagicSessionResponder">
> > >                 <type>resp:MagicSessionResponder</type>
> > >         <provide partnerLink="mainPartnerLink">
> > >             <service name="mws:MSResponderService"
> > > port="MSResponderPort"/>
> > >         </provide>
> > >         <invoke partnerLink="mainPartnerLink">
> > >             <service name="mws:MSMainService" port="MSMainPort"/>
> > >         </invoke>
> > >     </process>
> > > </deploy>
> > >
> > >
> > > --------------------------------
> > > main.wsdl------------------------------------
> > > <?xml version="1.0" encoding="utf-8" ?>
> > > <!--
> > >     example copied from
> > >
> > >
> > >
> >
> https://svn.apache.org/viewvc/ode/trunk/distro/src/examples-war/MagicSession/
> > >   -->
> > >
> > > <wsdl:definitions
> > >         targetNamespace="http://ode/bpel/unit-test.wsdl"
> > >         xmlns="http://schemas.xmlsoap.org/wsdl/"
> > >         xmlns:tns="http://ode/bpel/unit-test.wsdl"
> > >         xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> > >         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > >         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> > >         xmlns:wsa="http://www.w3.org/2005/08/addressing"
> > >         xmlns:smix="http://servicemix.org/wsdl/jbi/"
> > >         xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
> > >
> > >     <types>
> > >         <xsd:element name="result" type="xsd:string"/>
> > >         <xsd:element name="execute" type="xsd:string"/>
> > >         <xsd:element name="callback" type="xsd:string"/>
> > >         <xsd:element name="doubleCallback" type="xsd:string"/>
> > >         <xsd:element name="tripleCallback" type="xsd:string"/>
> > >         <xsd:element name="initiate" type="xsd:string"/>
> > >         <xsd:element name="doubleCall" type="xsd:string"/>
> > >         <xsd:element name="tripleCall" type="wsa:EndpointReference"/>
> > >     </types>
> > >
> > >     <wsdl:message name="ExecuteMessage">
> > >         <wsdl:part name="payload" element="tns:execute"/>
> > >     </wsdl:message>
> > >
> > >     <wsdl:message name="CallbackMessage">
> > >         <wsdl:part name="payload" element="tns:callback"/>
> > >     </wsdl:message>
> > >
> > >     <wsdl:message name="DoubleCallbackMessage">
> > >         <wsdl:part name="payload" element="tns:doubleCallback"/>
> > >     </wsdl:message>
> > >
> > >     <wsdl:message name="TripleCallbackMessage">
> > >         <wsdl:part name="payload" element="tns:tripleCallback"/>
> > >     </wsdl:message>
> > >
> > >     <wsdl:message name="ResultMessage">
> > >         <wsdl:part name="ack" element="tns:result"/>
> > >     </wsdl:message>
> > >
> > >     <wsdl:message name="InitiateMessage">
> > >         <wsdl:part name="payload" element="tns:initiate"/>
> > >     </wsdl:message>
> > >
> > >     <wsdl:message name="DoubleCallMessage">
> > >         <wsdl:part name="payload" element="tns:doubleCall"/>
> > >     </wsdl:message>
> > >
> > >     <wsdl:message name="TripleCallMessage">
> > >         <wsdl:part name="payload" element="wsa:EndpointReference"/>
> > >     </wsdl:message>
> > >
> > >     <wsdl:portType name="MSExecutePortType">
> > >         <wsdl:operation name="execute">
> > >             <wsdl:input message="tns:ExecuteMessage" name="Execute"/>
> > >             <wsdl:output message="tns:ResultMessage" name="Result"/>
> > >         </wsdl:operation>
> > >     </wsdl:portType>
> > >     <wsdl:portType name="MSMainPortType">
> > >         <wsdl:operation name="callback">
> > >             <wsdl:input message="tns:CallbackMessage"
> name="Callback"/>
> > >         </wsdl:operation>
> > >         <wsdl:operation name="doubleCallback">
> > >             <wsdl:input message="tns:DoubleCallbackMessage"
> > > name="DoubleCallback"/>
> > >         </wsdl:operation>
> > >         <wsdl:operation name="tripleCallback">
> > >             <wsdl:input message="tns:TripleCallbackMessage"
> > > name="TripleCallback"/>
> > >         </wsdl:operation>
> > >     </wsdl:portType>
> > >
> > >     <wsdl:portType name="MSResponderPortType">
> > >         <wsdl:operation name="initiate">
> > >             <wsdl:input message="tns:InitiateMessage"
> name="Callback"/>
> > >         </wsdl:operation>
> > >         <wsdl:operation name="doubleCall">
> > >             <wsdl:input message="tns:DoubleCallMessage"
> > > name="DoubleCallback"/>
> > >         </wsdl:operation>
> > >         <wsdl:operation name="EndpointReference">
> > >             <wsdl:input message="tns:TripleCallMessage"
> > > name="EndpointReference"/>
> > >         </wsdl:operation>
> > >     </wsdl:portType>
> > > <!--
> > >     <wsdl:binding name="MSExecuteBinding"
> type="tns:MSExecutePortType">
> > >         <soap:binding style="document" transport="
> > > http://schemas.xmlsoap.org/soap/http"/>
> > >         <wsdl:operation name="execute">
> > >             <soap:operation soapAction="" style="document"/>
> > >             <wsdl:input>
> > >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > > use="literal"/>
> > >             </wsdl:input>
> > >             <wsdl:output>
> > >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > > use="literal"/>
> > >             </wsdl:output>
> > >         </wsdl:operation>
> > >     </wsdl:binding>
> > >     <wsdl:binding name="MSMainBinding" type="tns:MSMainPortType">
> > >         <soap:binding style="document" transport="
> > > http://schemas.xmlsoap.org/soap/http"/>
> > >         <wsdl:operation name="callback">
> > >             <soap:operation soapAction="" style="document"/>
> > >             <wsdl:input>
> > >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > > use="literal"/>
> > >             </wsdl:input>
> > >         </wsdl:operation>
> > >         <wsdl:operation name="doubleCallback">
> > >             <soap:operation soapAction="" style="document"/>
> > >             <wsdl:input>
> > >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > > use="literal"/>
> > >             </wsdl:input>
> > >         </wsdl:operation>
> > >         <wsdl:operation name="tripleCallback">
> > >             <soap:operation soapAction="" style="document"/>
> > >             <wsdl:input>
> > >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > > use="literal"/>
> > >             </wsdl:input>
> > >         </wsdl:operation>
> > >     </wsdl:binding>
> > >
> > >     <wsdl:binding name="MSResponderBinding"
> > > type="tns:MSResponderPortType">
> > >         <soap:binding style="document" transport="
> > > http://schemas.xmlsoap.org/soap/http"/>
> > >         <wsdl:operation name="initiate">
> > >             <soap:operation soapAction="" style="document"/>
> > >             <wsdl:input>
> > >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > > use="literal"/>
> > >             </wsdl:input>
> > >         </wsdl:operation>
> > >         <wsdl:operation name="doubleCall">
> > >             <soap:operation soapAction="" style="document"/>
> > >             <wsdl:input>
> > >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > > use="literal"/>
> > >             </wsdl:input>
> > >         </wsdl:operation>
> > >         <wsdl:operation name="EndpointReference">
> > >             <soap:operation soapAction="" style="document"/>
> > >             <wsdl:input>
> > >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > > use="literal"/>
> > >             </wsdl:input>
> > >         </wsdl:operation>
> > >     </wsdl:binding>
> > >
> > >     <wsdl:service name="MSMainExecuteService">
> > >         <wsdl:port name="MSExecutePort"
> binding="tns:MSExecuteBinding">
> > >             <soap:address location="
> > > http://localhost:8080/ode/processes/MSMainExecuteService"/>
> > >         </wsdl:port>
> > >     </wsdl:service>
> > >
> > >     <wsdl:service name="MSMainService">
> > >         <wsdl:port name="MSMainPort" binding="tns:MSMainBinding">
> > >             <soap:address location="
> > > http://localhost:8080/ode/processes/MSMainService"/>
> > >         </wsdl:port>
> > >     </wsdl:service>
> > >
> > >     <wsdl:service name="MSResponderService">
> > >         <wsdl:port name="MSResponderPort"
> > > binding="tns:MSResponderBinding">
> > >             <soap:address location="
> > > http://localhost:8080/ode/processes/MSResponderService"/>
> > >         </wsdl:port>
> > >     </wsdl:service>
> > > -->
> > >
> > >     <plnk:partnerLinkType name="ResponderPartnerLinkType">
> > >         <plnk:role name="responder"
> portType="tns:MSResponderPortType"/>
> > >         <plnk:role name="main" portType="tns:MSMainPortType"/>
> > >     </plnk:partnerLinkType>
> > >
> > >     <plnk:partnerLinkType name="ExecutePartnerLinkType">
> > >         <plnk:role name="executor" portType="tns:MSExecutePortType"/>
> > >     </plnk:partnerLinkType>
> > >
> > > </wsdl:definitions>
> > >
> > > ------------------------------
> > > main.bpel--------------------------------------
> > > <?xml version="1.0" encoding="utf-8" ?>
> > > <process name="MagicSessionMain"
> > >          targetNamespace="http://ode/bpel/unit-test"
> > >          xmlns="
> http://docs.oasis-open.org/wsbpel/2.0/process/executable
> > "
> > >          xmlns:tns="http://ode/bpel/unit-test"
> > >          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > >          xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> > >          xmlns:test="http://ode/bpel/unit-test.wsdl">
> > >
> > >   <import location="Main.wsdl" namespace="
> http://ode/bpel/unit-test.wsdl
> > "
> > >      importType="http://schemas.xmlsoap.org/wsdl/" />
> > >
> > >   <partnerLinks>
> > >     <partnerLink name="responderPartnerLink"
> > > partnerLinkType="test:ResponderPartnerLinkType"
> > >                  myRole="main" partnerRole="responder"
> > > initializePartnerRole="yes"/>
> > >     <partnerLink name="executePartnerLink"
> > > partnerLinkType="test:ExecutePartnerLinkType"
> > >                  myRole="executor"/>
> > >   </partnerLinks>
> > >
> > >   <variables>
> > >     <variable name="dummy" messageType="test:ExecuteMessage"/>
> > >     <variable name="dummy2" messageType="test:InitiateMessage"/>
> > >     <variable name="dummy3" messageType="test:CallbackMessage"/>
> > >     <variable name="dummy4" messageType="test:DoubleCallMessage"/>
> > >     <variable name="dummy5" messageType="test:DoubleCallbackMessage"/>
> > >     <variable name="eprmessage" messageType="test:TripleCallMessage"/>
> > >     <variable name="myepr" messageType="test:TripleCallbackMessage"/>
> > >     <variable name="result" messageType="test:ResultMessage"/>
> > >   </variables>
> > >
> > >   <sequence>
> > >     <!-- Start message -->
> > >     <receive name="start" partnerLink="executePartnerLink"
> > >              portType="test:MSExecutePortType" operation="execute"
> > > createInstance="yes" variable="dummy"/>
> > >
> > >     <!-- Initializing message, starting the responder process with the
> > > magic
> > > session
> > >          and expecting a callback -->
> > >     <assign>
> > >       <copy>
> > >         <from>123</from>
> > >         <to variable="dummy2" part="payload"/>
> > >       </copy>
> > >     </assign>
> > >     <invoke name="initiate" partnerLink="responderPartnerLink"
> > > portType="test:MSResponderPortType"
> > >             operation="initiate" inputVariable="dummy2"/>
> > >
> > >     <receive name="callback" partnerLink="responderPartnerLink"
> > >              portType="test:MSMainPortType" operation="callback"
> > > variable="dummy3"/>
> > >
> > >     <!-- Initializing message, calling our partner again with magic
> > > session
> > > (double invocation) -->
> > >     <assign>
> > >       <copy>
> > >         <from>123</from>
> > >         <to variable="dummy4" part="payload"/>
> > >       </copy>
> > >     </assign>
> > >     <invoke name="get-endpoint" partnerLink="responderPartnerLink"
> > > portType="test:MSResponderPortType"
> > >             operation="doubleCall" inputVariable="dummy4"/>
> > >
> > >     <receive name="doubleCallback" partnerLink="responderPartnerLink"
> > >              portType="test:MSMainPortType" operation="doubleCallback"
> > > variable="dummy5"/>
> > >
> > >     <!-- Sending our endpoint explicitly to have our partner calling
> us
> > > back
> > > using it
> > >          (demonstrating assignment) -->
> > >     <assign>
> > >       <copy>
> > >         <from partnerLink="responderPartnerLink"
> > > endpointReference="myRole"/>
> > >         <to variable="eprmessage" part="payload"/>
> > >       </copy>
> > >     </assign>
> > >     <invoke name="eprPassing" partnerLink="responderPartnerLink"
> > > portType="test:MSResponderPortType"
> > >             operation="EndpointReference" inputVariable="eprmessage"/>
> > >
> > >     <receive name="tripleCallback" partnerLink="responderPartnerLink"
> > >              portType="test:MSMainPortType" operation="tripleCallback"
> > > variable="myepr"/>
> > >
> > >     <!-- Done. -->
> > >     <assign>
> > >       <copy>
> > >         <from>'OK'</from>
> > >         <to variable="result" part="ack"/>
> > >       </copy>
> > >     </assign>
> > >     <reply name="end" partnerLink="executePartnerLink"
> > >            portType="test:MSExecutePortType" operation="execute"
> > > variable="result"/>
> > >
> > >   </sequence>
> > > </process>
> > >
> > > --------------------------------
> > > Responder.bpel----------------------------------
> > > <?xml version="1.0" encoding="utf-8" ?>
> > > <!--
> > >     example copied from
> > >
> > >
> > >
> >
> https://svn.apache.org/viewvc/ode/trunk/distro/src/examples-war/MagicSession/
> > >   -->
> > >
> > > <process name="MagicSessionResponder"
> > >          targetNamespace="http://ode/bpel/responder"
> > >          xmlns="
> http://docs.oasis-open.org/wsbpel/2.0/process/executable
> > "
> > >          xmlns:tns="http://ode/bpel/responder"
> > >          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > >          xmlns:resp="http://ode/bpel/unit-test.wsdl">
> > >
> > >   <import location="Main.wsdl" namespace="
> http://ode/bpel/unit-test.wsdl
> > "
> > >      importType="http://schemas.xmlsoap.org/wsdl/" />
> > >
> > >   <partnerLinks>
> > >     <partnerLink name="mainPartnerLink"
> > > partnerLinkType="resp:ResponderPartnerLinkType"
> > >                  myRole="responder" partnerRole="main"
> > > initializePartnerRole="yes"/>
> > >   </partnerLinks>
> > >
> > >   <variables>
> > >     <variable name="dummy2" messageType="resp:InitiateMessage"/>
> > >     <variable name="dummy3" messageType="resp:CallbackMessage"/>
> > >     <variable name="dummy4" messageType="resp:DoubleCallMessage"/>
> > >     <variable name="dummy5" messageType="resp:DoubleCallbackMessage"/>
> > >     <variable name="eprmessage" messageType="resp:TripleCallMessage"/>
> > >     <variable name="dummy6" messageType="resp:TripleCallbackMessage"/>
> > >   </variables>
> > >
> > >   <sequence>
> > >     <!-- Starting process and first callback -->
> > >     <receive name="start" partnerLink="mainPartnerLink"
> > variable="dummy2"
> > >              portType="resp:MSResponderPortType" operation="initiate"
> > > createInstance="yes"/>
> > >     <assign>
> > >       <copy>
> > >         <from>123</from>
> > >         <to variable="dummy3" part="payload"/>
> > >       </copy>
> > >     </assign>
> > >     <invoke name="callback" partnerLink="mainPartnerLink"
> > >            portType="resp:MSMainPortType" operation="callback"
> > > inputVariable="dummy3"/>
> > >
> > >     <!-- Second callback -->
> > >     <receive name="doubleCall" partnerLink="mainPartnerLink"
> > > variable="dummy4"
> > >              portType="resp:MSResponderPortType"
> > operation="doubleCall"/>
> > >     <assign>
> > >       <copy>
> > >         <from>123</from>
> > >         <to variable="dummy5" part="payload"/>
> > >       </copy>
> > >     </assign>
> > >     <invoke name="doubleCallback" partnerLink="mainPartnerLink"
> > >            portType="resp:MSMainPortType" operation="doubleCallback"
> > > inputVariable="dummy5"/>
> > >
> > >     <!-- Callback on the epr explicitly provided by partner in the
> > message
> > >          (demonstrating assignment) -->
> > >     <receive name="eprPassing" partnerLink="mainPartnerLink"
> > > variable="eprmessage"
> > >              portType="resp:MSResponderPortType"
> > > operation="EndpointReference"/>
> > >     <assign>
> > >       <copy>
> > >         <from variable="eprmessage" part="payload"/>
> > >         <to partnerLink="mainPartnerLink"/>
> > >       </copy>
> > >       <copy>
> > >         <from>123</from>
> > >         <to variable="dummy6" part="payload"/>
> > >       </copy>
> > >     </assign>
> > >     <invoke name="tripleCallback" partnerLink="mainPartnerLink"
> > >            portType="resp:MSMainPortType" operation="tripleCallback"
> > > inputVariable="dummy6"/>
> > >
> > >   </sequence>
> > > </process>
> > >
> > >
> > > --
> > >
> > > Simon S.
> > >
> >
>
>
>
> --
>
> Simon S.
>

Re: I need help to make the Magic Session sample work in ServiceMix

Posted by Simon Sekat <se...@gmail.com>.
Thank you, Alex.

Please anyone to finish this important piece of work, so that magic session
can work in JBI.

On 9/18/07, Alex Boisvert <bo...@intalio.com> wrote:
>
> Hi Simon,
>
> The stateful exchange protocol (aka magic sessions) is not currently
> supported through JBI.  It would require minor additions to the JBI
> integration in Ode, as probably the Http binding component in ServiceMix.
> Not a huge deal, we just need somebody motivated enough! :)
>
> alex
>
>
> On 9/18/07, Simon Sekat <se...@gmail.com> wrote:
> >
> > I created a service assembly that includes two service units - a HTTP
> > service unit and an ODE service unit.  The HTTP service unit merely
> > proxies
> > requests coming into the ODE service unit.
> >
> > After I successfully deployed those two service units into ServiceMix, I
> > have the following URLs available
> >
> > http://localhost:8080/ode/processes/MSResponderService/
> > http://localhost:8080/ode/processes/MSMainExecuteService/
> > http://localhost:8080/ode/processes/MSMainService/
> >
> > But when I invoke the ODE by sending the following soap request to
> > http://localhost:8080/ode/processes/MSMainExecuteService (as instructed
> by
> > the readme.txt came along with the magic session), I got an error saying
> > that "Error in deployment descriptor for process unknown partner link
> > responderPartnerLink".
> >
> > Please help me making the magic session sample work.  I need this to
> > assess
> > how ODE can be used to correlate requests with sessions.  Thank you.
> >
> > ------------------------------- <soap request>
> > -------------------------------------
> > <soapenv:Envelope xmlns:soapenv="
> > http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:unit="http://ode/bpel/unit-test.wsdl">
> >    <soapenv:Header/>
> >    <soapenv:Body>
> >       <unit:execute>fire!</unit:execute>
> >    </soapenv:Body>
> > </soapenv:Envelope>
> >
> > -------------------------------
> > deploy.xml-------------------------------------
> > <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
> >     xmlns:main="http://ode/bpel/unit-test "
> >     xmlns:mws="http://ode/bpel/unit-test.wsdl"
> >     xmlns:resp="http://ode/bpel/responder">
> >
> >     <process name="main:MagicSessionMain">
> >         <provide partnerLink="executePartnerLink">
> >             <service name="mws:MSMainExecuteService"
> > port="MSExecutePort"/>
> >         </provide>
> >         <provide partnerLink="responderPartnerLink">
> >             <service name="mws:MSMainService" port="MSMainPort"/>
> >         </provide>
> >         <invoke partnerLink="responderPartnerLink">
> >             <service name="mws:MSResponderService"
> > port="MSResponderPort"/>
> >         </invoke>
> >     </process>
> >     <process name="resp:MagicSessionResponder">
> >                 <type>resp:MagicSessionResponder</type>
> >         <provide partnerLink="mainPartnerLink">
> >             <service name="mws:MSResponderService"
> > port="MSResponderPort"/>
> >         </provide>
> >         <invoke partnerLink="mainPartnerLink">
> >             <service name="mws:MSMainService" port="MSMainPort"/>
> >         </invoke>
> >     </process>
> > </deploy>
> >
> >
> > --------------------------------
> > main.wsdl------------------------------------
> > <?xml version="1.0" encoding="utf-8" ?>
> > <!--
> >     example copied from
> >
> >
> >
> https://svn.apache.org/viewvc/ode/trunk/distro/src/examples-war/MagicSession/
> >   -->
> >
> > <wsdl:definitions
> >         targetNamespace="http://ode/bpel/unit-test.wsdl"
> >         xmlns="http://schemas.xmlsoap.org/wsdl/"
> >         xmlns:tns="http://ode/bpel/unit-test.wsdl"
> >         xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> >         xmlns:wsa="http://www.w3.org/2005/08/addressing"
> >         xmlns:smix="http://servicemix.org/wsdl/jbi/"
> >         xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
> >
> >     <types>
> >         <xsd:element name="result" type="xsd:string"/>
> >         <xsd:element name="execute" type="xsd:string"/>
> >         <xsd:element name="callback" type="xsd:string"/>
> >         <xsd:element name="doubleCallback" type="xsd:string"/>
> >         <xsd:element name="tripleCallback" type="xsd:string"/>
> >         <xsd:element name="initiate" type="xsd:string"/>
> >         <xsd:element name="doubleCall" type="xsd:string"/>
> >         <xsd:element name="tripleCall" type="wsa:EndpointReference"/>
> >     </types>
> >
> >     <wsdl:message name="ExecuteMessage">
> >         <wsdl:part name="payload" element="tns:execute"/>
> >     </wsdl:message>
> >
> >     <wsdl:message name="CallbackMessage">
> >         <wsdl:part name="payload" element="tns:callback"/>
> >     </wsdl:message>
> >
> >     <wsdl:message name="DoubleCallbackMessage">
> >         <wsdl:part name="payload" element="tns:doubleCallback"/>
> >     </wsdl:message>
> >
> >     <wsdl:message name="TripleCallbackMessage">
> >         <wsdl:part name="payload" element="tns:tripleCallback"/>
> >     </wsdl:message>
> >
> >     <wsdl:message name="ResultMessage">
> >         <wsdl:part name="ack" element="tns:result"/>
> >     </wsdl:message>
> >
> >     <wsdl:message name="InitiateMessage">
> >         <wsdl:part name="payload" element="tns:initiate"/>
> >     </wsdl:message>
> >
> >     <wsdl:message name="DoubleCallMessage">
> >         <wsdl:part name="payload" element="tns:doubleCall"/>
> >     </wsdl:message>
> >
> >     <wsdl:message name="TripleCallMessage">
> >         <wsdl:part name="payload" element="wsa:EndpointReference"/>
> >     </wsdl:message>
> >
> >     <wsdl:portType name="MSExecutePortType">
> >         <wsdl:operation name="execute">
> >             <wsdl:input message="tns:ExecuteMessage" name="Execute"/>
> >             <wsdl:output message="tns:ResultMessage" name="Result"/>
> >         </wsdl:operation>
> >     </wsdl:portType>
> >     <wsdl:portType name="MSMainPortType">
> >         <wsdl:operation name="callback">
> >             <wsdl:input message="tns:CallbackMessage" name="Callback"/>
> >         </wsdl:operation>
> >         <wsdl:operation name="doubleCallback">
> >             <wsdl:input message="tns:DoubleCallbackMessage"
> > name="DoubleCallback"/>
> >         </wsdl:operation>
> >         <wsdl:operation name="tripleCallback">
> >             <wsdl:input message="tns:TripleCallbackMessage"
> > name="TripleCallback"/>
> >         </wsdl:operation>
> >     </wsdl:portType>
> >
> >     <wsdl:portType name="MSResponderPortType">
> >         <wsdl:operation name="initiate">
> >             <wsdl:input message="tns:InitiateMessage" name="Callback"/>
> >         </wsdl:operation>
> >         <wsdl:operation name="doubleCall">
> >             <wsdl:input message="tns:DoubleCallMessage"
> > name="DoubleCallback"/>
> >         </wsdl:operation>
> >         <wsdl:operation name="EndpointReference">
> >             <wsdl:input message="tns:TripleCallMessage"
> > name="EndpointReference"/>
> >         </wsdl:operation>
> >     </wsdl:portType>
> > <!--
> >     <wsdl:binding name="MSExecuteBinding" type="tns:MSExecutePortType">
> >         <soap:binding style="document" transport="
> > http://schemas.xmlsoap.org/soap/http"/>
> >         <wsdl:operation name="execute">
> >             <soap:operation soapAction="" style="document"/>
> >             <wsdl:input>
> >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > use="literal"/>
> >             </wsdl:input>
> >             <wsdl:output>
> >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > use="literal"/>
> >             </wsdl:output>
> >         </wsdl:operation>
> >     </wsdl:binding>
> >     <wsdl:binding name="MSMainBinding" type="tns:MSMainPortType">
> >         <soap:binding style="document" transport="
> > http://schemas.xmlsoap.org/soap/http"/>
> >         <wsdl:operation name="callback">
> >             <soap:operation soapAction="" style="document"/>
> >             <wsdl:input>
> >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > use="literal"/>
> >             </wsdl:input>
> >         </wsdl:operation>
> >         <wsdl:operation name="doubleCallback">
> >             <soap:operation soapAction="" style="document"/>
> >             <wsdl:input>
> >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > use="literal"/>
> >             </wsdl:input>
> >         </wsdl:operation>
> >         <wsdl:operation name="tripleCallback">
> >             <soap:operation soapAction="" style="document"/>
> >             <wsdl:input>
> >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > use="literal"/>
> >             </wsdl:input>
> >         </wsdl:operation>
> >     </wsdl:binding>
> >
> >     <wsdl:binding name="MSResponderBinding"
> > type="tns:MSResponderPortType">
> >         <soap:binding style="document" transport="
> > http://schemas.xmlsoap.org/soap/http"/>
> >         <wsdl:operation name="initiate">
> >             <soap:operation soapAction="" style="document"/>
> >             <wsdl:input>
> >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > use="literal"/>
> >             </wsdl:input>
> >         </wsdl:operation>
> >         <wsdl:operation name="doubleCall">
> >             <soap:operation soapAction="" style="document"/>
> >             <wsdl:input>
> >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > use="literal"/>
> >             </wsdl:input>
> >         </wsdl:operation>
> >         <wsdl:operation name="EndpointReference">
> >             <soap:operation soapAction="" style="document"/>
> >             <wsdl:input>
> >                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> > use="literal"/>
> >             </wsdl:input>
> >         </wsdl:operation>
> >     </wsdl:binding>
> >
> >     <wsdl:service name="MSMainExecuteService">
> >         <wsdl:port name="MSExecutePort" binding="tns:MSExecuteBinding">
> >             <soap:address location="
> > http://localhost:8080/ode/processes/MSMainExecuteService"/>
> >         </wsdl:port>
> >     </wsdl:service>
> >
> >     <wsdl:service name="MSMainService">
> >         <wsdl:port name="MSMainPort" binding="tns:MSMainBinding">
> >             <soap:address location="
> > http://localhost:8080/ode/processes/MSMainService"/>
> >         </wsdl:port>
> >     </wsdl:service>
> >
> >     <wsdl:service name="MSResponderService">
> >         <wsdl:port name="MSResponderPort"
> > binding="tns:MSResponderBinding">
> >             <soap:address location="
> > http://localhost:8080/ode/processes/MSResponderService"/>
> >         </wsdl:port>
> >     </wsdl:service>
> > -->
> >
> >     <plnk:partnerLinkType name="ResponderPartnerLinkType">
> >         <plnk:role name="responder" portType="tns:MSResponderPortType"/>
> >         <plnk:role name="main" portType="tns:MSMainPortType"/>
> >     </plnk:partnerLinkType>
> >
> >     <plnk:partnerLinkType name="ExecutePartnerLinkType">
> >         <plnk:role name="executor" portType="tns:MSExecutePortType"/>
> >     </plnk:partnerLinkType>
> >
> > </wsdl:definitions>
> >
> > ------------------------------
> > main.bpel--------------------------------------
> > <?xml version="1.0" encoding="utf-8" ?>
> > <process name="MagicSessionMain"
> >          targetNamespace="http://ode/bpel/unit-test"
> >          xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable
> "
> >          xmlns:tns="http://ode/bpel/unit-test"
> >          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >          xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> >          xmlns:test="http://ode/bpel/unit-test.wsdl">
> >
> >   <import location="Main.wsdl" namespace="http://ode/bpel/unit-test.wsdl
> "
> >      importType="http://schemas.xmlsoap.org/wsdl/" />
> >
> >   <partnerLinks>
> >     <partnerLink name="responderPartnerLink"
> > partnerLinkType="test:ResponderPartnerLinkType"
> >                  myRole="main" partnerRole="responder"
> > initializePartnerRole="yes"/>
> >     <partnerLink name="executePartnerLink"
> > partnerLinkType="test:ExecutePartnerLinkType"
> >                  myRole="executor"/>
> >   </partnerLinks>
> >
> >   <variables>
> >     <variable name="dummy" messageType="test:ExecuteMessage"/>
> >     <variable name="dummy2" messageType="test:InitiateMessage"/>
> >     <variable name="dummy3" messageType="test:CallbackMessage"/>
> >     <variable name="dummy4" messageType="test:DoubleCallMessage"/>
> >     <variable name="dummy5" messageType="test:DoubleCallbackMessage"/>
> >     <variable name="eprmessage" messageType="test:TripleCallMessage"/>
> >     <variable name="myepr" messageType="test:TripleCallbackMessage"/>
> >     <variable name="result" messageType="test:ResultMessage"/>
> >   </variables>
> >
> >   <sequence>
> >     <!-- Start message -->
> >     <receive name="start" partnerLink="executePartnerLink"
> >              portType="test:MSExecutePortType" operation="execute"
> > createInstance="yes" variable="dummy"/>
> >
> >     <!-- Initializing message, starting the responder process with the
> > magic
> > session
> >          and expecting a callback -->
> >     <assign>
> >       <copy>
> >         <from>123</from>
> >         <to variable="dummy2" part="payload"/>
> >       </copy>
> >     </assign>
> >     <invoke name="initiate" partnerLink="responderPartnerLink"
> > portType="test:MSResponderPortType"
> >             operation="initiate" inputVariable="dummy2"/>
> >
> >     <receive name="callback" partnerLink="responderPartnerLink"
> >              portType="test:MSMainPortType" operation="callback"
> > variable="dummy3"/>
> >
> >     <!-- Initializing message, calling our partner again with magic
> > session
> > (double invocation) -->
> >     <assign>
> >       <copy>
> >         <from>123</from>
> >         <to variable="dummy4" part="payload"/>
> >       </copy>
> >     </assign>
> >     <invoke name="get-endpoint" partnerLink="responderPartnerLink"
> > portType="test:MSResponderPortType"
> >             operation="doubleCall" inputVariable="dummy4"/>
> >
> >     <receive name="doubleCallback" partnerLink="responderPartnerLink"
> >              portType="test:MSMainPortType" operation="doubleCallback"
> > variable="dummy5"/>
> >
> >     <!-- Sending our endpoint explicitly to have our partner calling us
> > back
> > using it
> >          (demonstrating assignment) -->
> >     <assign>
> >       <copy>
> >         <from partnerLink="responderPartnerLink"
> > endpointReference="myRole"/>
> >         <to variable="eprmessage" part="payload"/>
> >       </copy>
> >     </assign>
> >     <invoke name="eprPassing" partnerLink="responderPartnerLink"
> > portType="test:MSResponderPortType"
> >             operation="EndpointReference" inputVariable="eprmessage"/>
> >
> >     <receive name="tripleCallback" partnerLink="responderPartnerLink"
> >              portType="test:MSMainPortType" operation="tripleCallback"
> > variable="myepr"/>
> >
> >     <!-- Done. -->
> >     <assign>
> >       <copy>
> >         <from>'OK'</from>
> >         <to variable="result" part="ack"/>
> >       </copy>
> >     </assign>
> >     <reply name="end" partnerLink="executePartnerLink"
> >            portType="test:MSExecutePortType" operation="execute"
> > variable="result"/>
> >
> >   </sequence>
> > </process>
> >
> > --------------------------------
> > Responder.bpel----------------------------------
> > <?xml version="1.0" encoding="utf-8" ?>
> > <!--
> >     example copied from
> >
> >
> >
> https://svn.apache.org/viewvc/ode/trunk/distro/src/examples-war/MagicSession/
> >   -->
> >
> > <process name="MagicSessionResponder"
> >          targetNamespace="http://ode/bpel/responder"
> >          xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable
> "
> >          xmlns:tns="http://ode/bpel/responder"
> >          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >          xmlns:resp="http://ode/bpel/unit-test.wsdl">
> >
> >   <import location="Main.wsdl" namespace="http://ode/bpel/unit-test.wsdl
> "
> >      importType="http://schemas.xmlsoap.org/wsdl/" />
> >
> >   <partnerLinks>
> >     <partnerLink name="mainPartnerLink"
> > partnerLinkType="resp:ResponderPartnerLinkType"
> >                  myRole="responder" partnerRole="main"
> > initializePartnerRole="yes"/>
> >   </partnerLinks>
> >
> >   <variables>
> >     <variable name="dummy2" messageType="resp:InitiateMessage"/>
> >     <variable name="dummy3" messageType="resp:CallbackMessage"/>
> >     <variable name="dummy4" messageType="resp:DoubleCallMessage"/>
> >     <variable name="dummy5" messageType="resp:DoubleCallbackMessage"/>
> >     <variable name="eprmessage" messageType="resp:TripleCallMessage"/>
> >     <variable name="dummy6" messageType="resp:TripleCallbackMessage"/>
> >   </variables>
> >
> >   <sequence>
> >     <!-- Starting process and first callback -->
> >     <receive name="start" partnerLink="mainPartnerLink"
> variable="dummy2"
> >              portType="resp:MSResponderPortType" operation="initiate"
> > createInstance="yes"/>
> >     <assign>
> >       <copy>
> >         <from>123</from>
> >         <to variable="dummy3" part="payload"/>
> >       </copy>
> >     </assign>
> >     <invoke name="callback" partnerLink="mainPartnerLink"
> >            portType="resp:MSMainPortType" operation="callback"
> > inputVariable="dummy3"/>
> >
> >     <!-- Second callback -->
> >     <receive name="doubleCall" partnerLink="mainPartnerLink"
> > variable="dummy4"
> >              portType="resp:MSResponderPortType"
> operation="doubleCall"/>
> >     <assign>
> >       <copy>
> >         <from>123</from>
> >         <to variable="dummy5" part="payload"/>
> >       </copy>
> >     </assign>
> >     <invoke name="doubleCallback" partnerLink="mainPartnerLink"
> >            portType="resp:MSMainPortType" operation="doubleCallback"
> > inputVariable="dummy5"/>
> >
> >     <!-- Callback on the epr explicitly provided by partner in the
> message
> >          (demonstrating assignment) -->
> >     <receive name="eprPassing" partnerLink="mainPartnerLink"
> > variable="eprmessage"
> >              portType="resp:MSResponderPortType"
> > operation="EndpointReference"/>
> >     <assign>
> >       <copy>
> >         <from variable="eprmessage" part="payload"/>
> >         <to partnerLink="mainPartnerLink"/>
> >       </copy>
> >       <copy>
> >         <from>123</from>
> >         <to variable="dummy6" part="payload"/>
> >       </copy>
> >     </assign>
> >     <invoke name="tripleCallback" partnerLink="mainPartnerLink"
> >            portType="resp:MSMainPortType" operation="tripleCallback"
> > inputVariable="dummy6"/>
> >
> >   </sequence>
> > </process>
> >
> >
> > --
> >
> > Simon S.
> >
>



-- 

Simon S.

Re: I need help to make the Magic Session sample work in ServiceMix

Posted by Alex Boisvert <bo...@intalio.com>.
Hi Simon,

The stateful exchange protocol (aka magic sessions) is not currently
supported through JBI.  It would require minor additions to the JBI
integration in Ode, as probably the Http binding component in ServiceMix.
Not a huge deal, we just need somebody motivated enough! :)

alex


On 9/18/07, Simon Sekat <se...@gmail.com> wrote:
>
> I created a service assembly that includes two service units - a HTTP
> service unit and an ODE service unit.  The HTTP service unit merely
> proxies
> requests coming into the ODE service unit.
>
> After I successfully deployed those two service units into ServiceMix, I
> have the following URLs available
>
> http://localhost:8080/ode/processes/MSResponderService/
> http://localhost:8080/ode/processes/MSMainExecuteService/
> http://localhost:8080/ode/processes/MSMainService/
>
> But when I invoke the ODE by sending the following soap request to
> http://localhost:8080/ode/processes/MSMainExecuteService (as instructed by
> the readme.txt came along with the magic session), I got an error saying
> that "Error in deployment descriptor for process unknown partner link
> responderPartnerLink".
>
> Please help me making the magic session sample work.  I need this to
> assess
> how ODE can be used to correlate requests with sessions.  Thank you.
>
> ------------------------------- <soap request>
> -------------------------------------
> <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:unit="http://ode/bpel/unit-test.wsdl">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <unit:execute>fire!</unit:execute>
>    </soapenv:Body>
> </soapenv:Envelope>
>
> -------------------------------
> deploy.xml-------------------------------------
> <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
>     xmlns:main="http://ode/bpel/unit-test "
>     xmlns:mws="http://ode/bpel/unit-test.wsdl"
>     xmlns:resp="http://ode/bpel/responder">
>
>     <process name="main:MagicSessionMain">
>         <provide partnerLink="executePartnerLink">
>             <service name="mws:MSMainExecuteService"
> port="MSExecutePort"/>
>         </provide>
>         <provide partnerLink="responderPartnerLink">
>             <service name="mws:MSMainService" port="MSMainPort"/>
>         </provide>
>         <invoke partnerLink="responderPartnerLink">
>             <service name="mws:MSResponderService"
> port="MSResponderPort"/>
>         </invoke>
>     </process>
>     <process name="resp:MagicSessionResponder">
>                 <type>resp:MagicSessionResponder</type>
>         <provide partnerLink="mainPartnerLink">
>             <service name="mws:MSResponderService"
> port="MSResponderPort"/>
>         </provide>
>         <invoke partnerLink="mainPartnerLink">
>             <service name="mws:MSMainService" port="MSMainPort"/>
>         </invoke>
>     </process>
> </deploy>
>
>
> --------------------------------
> main.wsdl------------------------------------
> <?xml version="1.0" encoding="utf-8" ?>
> <!--
>     example copied from
>
>
> https://svn.apache.org/viewvc/ode/trunk/distro/src/examples-war/MagicSession/
>   -->
>
> <wsdl:definitions
>         targetNamespace="http://ode/bpel/unit-test.wsdl"
>         xmlns="http://schemas.xmlsoap.org/wsdl/"
>         xmlns:tns="http://ode/bpel/unit-test.wsdl"
>         xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>         xmlns:wsa="http://www.w3.org/2005/08/addressing"
>         xmlns:smix="http://servicemix.org/wsdl/jbi/"
>         xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
>
>     <types>
>         <xsd:element name="result" type="xsd:string"/>
>         <xsd:element name="execute" type="xsd:string"/>
>         <xsd:element name="callback" type="xsd:string"/>
>         <xsd:element name="doubleCallback" type="xsd:string"/>
>         <xsd:element name="tripleCallback" type="xsd:string"/>
>         <xsd:element name="initiate" type="xsd:string"/>
>         <xsd:element name="doubleCall" type="xsd:string"/>
>         <xsd:element name="tripleCall" type="wsa:EndpointReference"/>
>     </types>
>
>     <wsdl:message name="ExecuteMessage">
>         <wsdl:part name="payload" element="tns:execute"/>
>     </wsdl:message>
>
>     <wsdl:message name="CallbackMessage">
>         <wsdl:part name="payload" element="tns:callback"/>
>     </wsdl:message>
>
>     <wsdl:message name="DoubleCallbackMessage">
>         <wsdl:part name="payload" element="tns:doubleCallback"/>
>     </wsdl:message>
>
>     <wsdl:message name="TripleCallbackMessage">
>         <wsdl:part name="payload" element="tns:tripleCallback"/>
>     </wsdl:message>
>
>     <wsdl:message name="ResultMessage">
>         <wsdl:part name="ack" element="tns:result"/>
>     </wsdl:message>
>
>     <wsdl:message name="InitiateMessage">
>         <wsdl:part name="payload" element="tns:initiate"/>
>     </wsdl:message>
>
>     <wsdl:message name="DoubleCallMessage">
>         <wsdl:part name="payload" element="tns:doubleCall"/>
>     </wsdl:message>
>
>     <wsdl:message name="TripleCallMessage">
>         <wsdl:part name="payload" element="wsa:EndpointReference"/>
>     </wsdl:message>
>
>     <wsdl:portType name="MSExecutePortType">
>         <wsdl:operation name="execute">
>             <wsdl:input message="tns:ExecuteMessage" name="Execute"/>
>             <wsdl:output message="tns:ResultMessage" name="Result"/>
>         </wsdl:operation>
>     </wsdl:portType>
>     <wsdl:portType name="MSMainPortType">
>         <wsdl:operation name="callback">
>             <wsdl:input message="tns:CallbackMessage" name="Callback"/>
>         </wsdl:operation>
>         <wsdl:operation name="doubleCallback">
>             <wsdl:input message="tns:DoubleCallbackMessage"
> name="DoubleCallback"/>
>         </wsdl:operation>
>         <wsdl:operation name="tripleCallback">
>             <wsdl:input message="tns:TripleCallbackMessage"
> name="TripleCallback"/>
>         </wsdl:operation>
>     </wsdl:portType>
>
>     <wsdl:portType name="MSResponderPortType">
>         <wsdl:operation name="initiate">
>             <wsdl:input message="tns:InitiateMessage" name="Callback"/>
>         </wsdl:operation>
>         <wsdl:operation name="doubleCall">
>             <wsdl:input message="tns:DoubleCallMessage"
> name="DoubleCallback"/>
>         </wsdl:operation>
>         <wsdl:operation name="EndpointReference">
>             <wsdl:input message="tns:TripleCallMessage"
> name="EndpointReference"/>
>         </wsdl:operation>
>     </wsdl:portType>
> <!--
>     <wsdl:binding name="MSExecuteBinding" type="tns:MSExecutePortType">
>         <soap:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"/>
>         <wsdl:operation name="execute">
>             <soap:operation soapAction="" style="document"/>
>             <wsdl:input>
>                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> use="literal"/>
>             </wsdl:input>
>             <wsdl:output>
>                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> use="literal"/>
>             </wsdl:output>
>         </wsdl:operation>
>     </wsdl:binding>
>     <wsdl:binding name="MSMainBinding" type="tns:MSMainPortType">
>         <soap:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"/>
>         <wsdl:operation name="callback">
>             <soap:operation soapAction="" style="document"/>
>             <wsdl:input>
>                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> use="literal"/>
>             </wsdl:input>
>         </wsdl:operation>
>         <wsdl:operation name="doubleCallback">
>             <soap:operation soapAction="" style="document"/>
>             <wsdl:input>
>                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> use="literal"/>
>             </wsdl:input>
>         </wsdl:operation>
>         <wsdl:operation name="tripleCallback">
>             <soap:operation soapAction="" style="document"/>
>             <wsdl:input>
>                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> use="literal"/>
>             </wsdl:input>
>         </wsdl:operation>
>     </wsdl:binding>
>
>     <wsdl:binding name="MSResponderBinding"
> type="tns:MSResponderPortType">
>         <soap:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"/>
>         <wsdl:operation name="initiate">
>             <soap:operation soapAction="" style="document"/>
>             <wsdl:input>
>                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> use="literal"/>
>             </wsdl:input>
>         </wsdl:operation>
>         <wsdl:operation name="doubleCall">
>             <soap:operation soapAction="" style="document"/>
>             <wsdl:input>
>                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> use="literal"/>
>             </wsdl:input>
>         </wsdl:operation>
>         <wsdl:operation name="EndpointReference">
>             <soap:operation soapAction="" style="document"/>
>             <wsdl:input>
>                 <soap:body namespace="http://ode/bpel/unit-test.wsdl"
> use="literal"/>
>             </wsdl:input>
>         </wsdl:operation>
>     </wsdl:binding>
>
>     <wsdl:service name="MSMainExecuteService">
>         <wsdl:port name="MSExecutePort" binding="tns:MSExecuteBinding">
>             <soap:address location="
> http://localhost:8080/ode/processes/MSMainExecuteService"/>
>         </wsdl:port>
>     </wsdl:service>
>
>     <wsdl:service name="MSMainService">
>         <wsdl:port name="MSMainPort" binding="tns:MSMainBinding">
>             <soap:address location="
> http://localhost:8080/ode/processes/MSMainService"/>
>         </wsdl:port>
>     </wsdl:service>
>
>     <wsdl:service name="MSResponderService">
>         <wsdl:port name="MSResponderPort"
> binding="tns:MSResponderBinding">
>             <soap:address location="
> http://localhost:8080/ode/processes/MSResponderService"/>
>         </wsdl:port>
>     </wsdl:service>
> -->
>
>     <plnk:partnerLinkType name="ResponderPartnerLinkType">
>         <plnk:role name="responder" portType="tns:MSResponderPortType"/>
>         <plnk:role name="main" portType="tns:MSMainPortType"/>
>     </plnk:partnerLinkType>
>
>     <plnk:partnerLinkType name="ExecutePartnerLinkType">
>         <plnk:role name="executor" portType="tns:MSExecutePortType"/>
>     </plnk:partnerLinkType>
>
> </wsdl:definitions>
>
> ------------------------------
> main.bpel--------------------------------------
> <?xml version="1.0" encoding="utf-8" ?>
> <process name="MagicSessionMain"
>          targetNamespace="http://ode/bpel/unit-test"
>          xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
>          xmlns:tns="http://ode/bpel/unit-test"
>          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>          xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>          xmlns:test="http://ode/bpel/unit-test.wsdl">
>
>   <import location="Main.wsdl" namespace="http://ode/bpel/unit-test.wsdl"
>      importType="http://schemas.xmlsoap.org/wsdl/" />
>
>   <partnerLinks>
>     <partnerLink name="responderPartnerLink"
> partnerLinkType="test:ResponderPartnerLinkType"
>                  myRole="main" partnerRole="responder"
> initializePartnerRole="yes"/>
>     <partnerLink name="executePartnerLink"
> partnerLinkType="test:ExecutePartnerLinkType"
>                  myRole="executor"/>
>   </partnerLinks>
>
>   <variables>
>     <variable name="dummy" messageType="test:ExecuteMessage"/>
>     <variable name="dummy2" messageType="test:InitiateMessage"/>
>     <variable name="dummy3" messageType="test:CallbackMessage"/>
>     <variable name="dummy4" messageType="test:DoubleCallMessage"/>
>     <variable name="dummy5" messageType="test:DoubleCallbackMessage"/>
>     <variable name="eprmessage" messageType="test:TripleCallMessage"/>
>     <variable name="myepr" messageType="test:TripleCallbackMessage"/>
>     <variable name="result" messageType="test:ResultMessage"/>
>   </variables>
>
>   <sequence>
>     <!-- Start message -->
>     <receive name="start" partnerLink="executePartnerLink"
>              portType="test:MSExecutePortType" operation="execute"
> createInstance="yes" variable="dummy"/>
>
>     <!-- Initializing message, starting the responder process with the
> magic
> session
>          and expecting a callback -->
>     <assign>
>       <copy>
>         <from>123</from>
>         <to variable="dummy2" part="payload"/>
>       </copy>
>     </assign>
>     <invoke name="initiate" partnerLink="responderPartnerLink"
> portType="test:MSResponderPortType"
>             operation="initiate" inputVariable="dummy2"/>
>
>     <receive name="callback" partnerLink="responderPartnerLink"
>              portType="test:MSMainPortType" operation="callback"
> variable="dummy3"/>
>
>     <!-- Initializing message, calling our partner again with magic
> session
> (double invocation) -->
>     <assign>
>       <copy>
>         <from>123</from>
>         <to variable="dummy4" part="payload"/>
>       </copy>
>     </assign>
>     <invoke name="get-endpoint" partnerLink="responderPartnerLink"
> portType="test:MSResponderPortType"
>             operation="doubleCall" inputVariable="dummy4"/>
>
>     <receive name="doubleCallback" partnerLink="responderPartnerLink"
>              portType="test:MSMainPortType" operation="doubleCallback"
> variable="dummy5"/>
>
>     <!-- Sending our endpoint explicitly to have our partner calling us
> back
> using it
>          (demonstrating assignment) -->
>     <assign>
>       <copy>
>         <from partnerLink="responderPartnerLink"
> endpointReference="myRole"/>
>         <to variable="eprmessage" part="payload"/>
>       </copy>
>     </assign>
>     <invoke name="eprPassing" partnerLink="responderPartnerLink"
> portType="test:MSResponderPortType"
>             operation="EndpointReference" inputVariable="eprmessage"/>
>
>     <receive name="tripleCallback" partnerLink="responderPartnerLink"
>              portType="test:MSMainPortType" operation="tripleCallback"
> variable="myepr"/>
>
>     <!-- Done. -->
>     <assign>
>       <copy>
>         <from>'OK'</from>
>         <to variable="result" part="ack"/>
>       </copy>
>     </assign>
>     <reply name="end" partnerLink="executePartnerLink"
>            portType="test:MSExecutePortType" operation="execute"
> variable="result"/>
>
>   </sequence>
> </process>
>
> --------------------------------
> Responder.bpel----------------------------------
> <?xml version="1.0" encoding="utf-8" ?>
> <!--
>     example copied from
>
>
> https://svn.apache.org/viewvc/ode/trunk/distro/src/examples-war/MagicSession/
>   -->
>
> <process name="MagicSessionResponder"
>          targetNamespace="http://ode/bpel/responder"
>          xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
>          xmlns:tns="http://ode/bpel/responder"
>          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>          xmlns:resp="http://ode/bpel/unit-test.wsdl">
>
>   <import location="Main.wsdl" namespace="http://ode/bpel/unit-test.wsdl"
>      importType="http://schemas.xmlsoap.org/wsdl/" />
>
>   <partnerLinks>
>     <partnerLink name="mainPartnerLink"
> partnerLinkType="resp:ResponderPartnerLinkType"
>                  myRole="responder" partnerRole="main"
> initializePartnerRole="yes"/>
>   </partnerLinks>
>
>   <variables>
>     <variable name="dummy2" messageType="resp:InitiateMessage"/>
>     <variable name="dummy3" messageType="resp:CallbackMessage"/>
>     <variable name="dummy4" messageType="resp:DoubleCallMessage"/>
>     <variable name="dummy5" messageType="resp:DoubleCallbackMessage"/>
>     <variable name="eprmessage" messageType="resp:TripleCallMessage"/>
>     <variable name="dummy6" messageType="resp:TripleCallbackMessage"/>
>   </variables>
>
>   <sequence>
>     <!-- Starting process and first callback -->
>     <receive name="start" partnerLink="mainPartnerLink" variable="dummy2"
>              portType="resp:MSResponderPortType" operation="initiate"
> createInstance="yes"/>
>     <assign>
>       <copy>
>         <from>123</from>
>         <to variable="dummy3" part="payload"/>
>       </copy>
>     </assign>
>     <invoke name="callback" partnerLink="mainPartnerLink"
>            portType="resp:MSMainPortType" operation="callback"
> inputVariable="dummy3"/>
>
>     <!-- Second callback -->
>     <receive name="doubleCall" partnerLink="mainPartnerLink"
> variable="dummy4"
>              portType="resp:MSResponderPortType" operation="doubleCall"/>
>     <assign>
>       <copy>
>         <from>123</from>
>         <to variable="dummy5" part="payload"/>
>       </copy>
>     </assign>
>     <invoke name="doubleCallback" partnerLink="mainPartnerLink"
>            portType="resp:MSMainPortType" operation="doubleCallback"
> inputVariable="dummy5"/>
>
>     <!-- Callback on the epr explicitly provided by partner in the message
>          (demonstrating assignment) -->
>     <receive name="eprPassing" partnerLink="mainPartnerLink"
> variable="eprmessage"
>              portType="resp:MSResponderPortType"
> operation="EndpointReference"/>
>     <assign>
>       <copy>
>         <from variable="eprmessage" part="payload"/>
>         <to partnerLink="mainPartnerLink"/>
>       </copy>
>       <copy>
>         <from>123</from>
>         <to variable="dummy6" part="payload"/>
>       </copy>
>     </assign>
>     <invoke name="tripleCallback" partnerLink="mainPartnerLink"
>            portType="resp:MSMainPortType" operation="tripleCallback"
> inputVariable="dummy6"/>
>
>   </sequence>
> </process>
>
>
> --
>
> Simon S.
>