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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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.
