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> > > >
