I use ode1.3.4 and eclipse BPEL design plugin test web service explorer as
client.

2010/7/1 Chunyang YE <[email protected]>

> Hi,
>
> I developed a BPEL example to test the correlation, and got some strange
> result. I designed two receive activities in the process.
> When the message type for the second receive activity has only one element
> which is alias to the correlation token, the process works well.
>
> <element name="NewOperation">
>                 <complexType>
>                     <sequence>
>
>                         <!-- element name="in" type="string"></element-->
>                         <element name="correlator" type="string"></element>
>                     </sequence>
>                 </complexType>
>             </element>
>
> However, when i added new elements in addition to the correlation token in
> the message type, the process can't receive the input
> (that is, no response to the input from the client for the second receive,
> and the second receive is not executed according to the observed events from
> the ode server)
> Could anyone tell me what is wrong? Thanks a lot.
>
> The following is my bpel process and corresponding wsdl file.
>
> <!-- BPELExampleB BPEL Process [Generated by the Eclipse BPEL Designer]
> -->
> <!-- Date: Wed Jun 30 22:19:19 EDT 2010 -->
>
> <bpel:process name="BPELExampleB"
>          targetNamespace="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB";
>          suppressJoinFailure="yes"
>          xmlns:tns="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB";
>          xmlns:bpel="
> http://docs.oasis-open.org/wsbpel/2.0/process/executable";
>          >
>     <!-- Import the client WSDL -->
>     <bpel:import location="BPELExampleBArtifacts.wsdl" namespace="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB";
>             importType="http://schemas.xmlsoap.org/wsdl/"; />
>
>     <!-- =================================================================
> -->
>     <!-- PARTNERLINKS
> -->
>     <!-- List of services participating in this BPEL process
> -->
>     <!-- =================================================================
> -->
>     <bpel:partnerLinks>
>         <!--
>         The 'client' role represents the requester of this service. It is
>         used for callback. The location and correlation information
> associated
>         with the client role are automatically set using WS-Addressing.
>         -->
>         <bpel:partnerLink name="client"
>                      partnerLinkType="tns:BPELExampleB"
>                      myRole="BPELExampleBProvider"
>                      />
>     </bpel:partnerLinks>
>
>     <!-- =================================================================
> -->
>     <!-- VARIABLES
> -->
>     <!-- List of messages and XML documents used within this BPEL process
> -->
>     <!-- =================================================================
> -->
>     <bpel:variables>
>         <!-- Reference to the message passed as input during initiation -->
>         <bpel:variable name="input"
>
> messageType="tns:BPELExampleBRequestMessage"/>
>
>
>         <bpel:variable name="clientRequest"
> messageType="tns:NewOperationRequest"></bpel:variable>
>     </bpel:variables>
>
>      <bpel:correlationSets>
>         <bpel:correlationSet name="CorrelationSetToken"
> properties="tns:token"/>
>     </bpel:correlationSets>
>
>     <!-- =================================================================
> -->
>     <!-- ORCHESTRATION LOGIC
> -->
>     <!-- Set of activities coordinating the flow of messages across the
> -->
>     <!-- services integrated within this business process
> -->
>     <!-- =================================================================
> -->
>     <bpel:sequence name="main">
>
>         <!-- Receive input from requestor.
>              Note: This maps to operation defined in BPELExampleB.wsdl
>              -->
>         <bpel:receive name="receiveInput" partnerLink="client"
>                  portType="tns:BPELExampleB"
>                  operation="initiate" variable="input"
>                  createInstance="yes">
>             <bpel:correlations>
>                 <bpel:correlation initiate="yes"
> set="CorrelationSetToken"/>
>             </bpel:correlations>
>         </bpel:receive>
>
>         <!-- Asynchronous callback to the requester.
>              Note: the callback location and correlation id is
> transparently handled
>              using WS-addressing.
>              -->
>         <bpel:receive name="Receive" partnerLink="client"
> operation="NewOperation" portType="tns:BPELExampleB"
> variable="clientRequest">
>             <bpel:correlations>
>                 <bpel:correlation initiate="no" set="CorrelationSetToken"/>
>             </bpel:correlations>
>         </bpel:receive>
>     </bpel:sequence>
> </bpel:process>
>
>
> <?xml version="1.0"?>
> <definitions name="BPELExampleB"
>         targetNamespace="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB";
>         xmlns:tns="http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB
> "
>         xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype";
>         xmlns="http://schemas.xmlsoap.org/wsdl/";
>         xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/varprop";
>         xmlns:p="http://www.w3.org/2001/XMLSchema"; xmlns:soap="
> http://schemas.xmlsoap.org/wsdl/soap/";>
>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      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.
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
>
>     <bpws:property name="token" type="p:string"/>
>     <bpws:propertyAlias propertyName="tns:token"
> messageType="tns:BPELExampleBRequestMessage" part="payload"
>           query="/tns:BPELExampleBRequest/tns:correlator"/>
>     <bpws:propertyAlias propertyName="tns:token"
> messageType="tns:NewOperationRequest" part="parameters"
>           query="/tns:NewOperation/tns:correlator"/>
>
>     <types>
>         <schema attributeFormDefault="unqualified"
>                 elementFormDefault="qualified"
>                 targetNamespace="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB";
>                 xmlns="http://www.w3.org/2001/XMLSchema";
>                 >
>
>             <element name="BPELExampleBRequest">
>                 <complexType>
>                     <sequence>
>
>                         <element name="correlator" type="string"></element>
>                     </sequence>
>                 </complexType>
>             </element>
>
>             <element name="BPELExampleBResponse">
>                 <complexType>
>                     <sequence>
>                         <element name="result" type="string"/>
>                     </sequence>
>                 </complexType>
>             </element>
>
>             <element name="NewOperation">
>                 <complexType>
>                     <sequence>
>
>                         <!-- element name="in" type="string"></element-->
>                         <element name="correlator" type="string"></element>
>                     </sequence>
>                 </complexType>
>             </element>
>
>         </schema>
>     </types>
>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      MESSAGE TYPE DEFINITION - Definition of the message types used as
>      part of the port type defintions
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
>     <message name="BPELExampleBRequestMessage">
>         <part name="payload" element="tns:BPELExampleBRequest"/>
>     </message>
>
>     <message name="NewOperationRequest">
>         <part name="parameters" element="tns:NewOperation"></part>
>     </message>
>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      PORT TYPE DEFINITION - A port type groups a set of operations into
>      a logical service unit.
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
>     <!-- portType implemented by the BPELExampleB BPEL process -->
>
>     <portType name="BPELExampleB">
>         <operation name="initiate">
>             <input message="tns:BPELExampleBRequestMessage"/>
>         </operation>
>         <operation name="NewOperation">
>             <input message="tns:NewOperationRequest"></input>
>
>         </operation>
>     </portType>
>
>
>
>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      PARTNER LINK TYPE DEFINITION
>          the BPELExampleB partnerLinkType binds the provider and
>          requester portType into an asynchronous conversation.
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
>     <plnk:partnerLinkType name="BPELExampleB">
>         <plnk:role name="BPELExampleBProvider"
> portType="tns:BPELExampleB"/>
>     </plnk:partnerLinkType>
>     <binding name="BPELExampleBBinding" type="tns:BPELExampleB">
>         <soap:binding style="document"
>             transport="http://schemas.xmlsoap.org/soap/http"; />
>         <operation name="initiate">
>             <soap:operation
>                 soapAction="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB/initiate"; />
>             <input>
>                 <soap:body use="literal" />
>             </input>
>         </operation>
>         <operation name="NewOperation">
>             <soap:operation
>                 soapAction="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB/NewOperation"; />
>             <input>
>                 <soap:body use="literal" />
>             </input>
>         </operation>
>     </binding>
>     <service name="BPELExampleB">
>         <port name="BPELExampleB" binding="tns:BPELExampleBBinding">
>             <soap:address location="
> http://localhost:8080/ode/processes/BPELExampleB"; />
>         </port>
>     </service>
> </definitions>
>
>
>

Reply via email to