You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Simone Maletta <si...@alice.it> on 2008/02/13 09:48:52 UTC
Async BPEL process
Hy guys I've got a question for you all,
I'm writing a silly application made of two BPEL process: the first one, called call, is a sync process that invoke in an async manner the second one, echo, and then reply to the caller.
As you may imagine the echo process nothing do than send back the received string.
here is my problem: invoking call I've got a run-time error : "Unknown operation "echoReq" on port Type "echoOutPortType"!
The think is that I never use echoOutPortType with echoReq operation.
I don't know why I got this.
I forget: I'm using ode1.0.
Here is my bpel and wsdl files and deploy.xml too!
Thank you all, regards
Simone
-------------------call.wsdl---------------
<?xml version="1.0" encoding ="UTF-8"?>
<wsdl:definitions
targetNamespace="http://localhost:8080/call.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://localhost:8080/call.wsdl"
xmlns:echo="http://localhost:8080/echo.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:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
<import location="echo.wsdl"
namespace="http://localhost:8080/echo.wsdl"/>
<wsdl:message name="callMessage">
<wsdl:part name="tellMe" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="callPortType">
<wsdl:operation name="call">
<wsdl:input message="tns:callMessage" name="Input"/>
<wsdl:output message="tns:callMessage" name="Output"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="callBinding" type="tns:callPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="call">
<soap:operation soapAction="" style="rpc"/>
<wsdl:input>
<soap:body
namespace="http://localhost:8080/call.wsdl"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body
namespace="http://localhost:8080/call.wsdl"
use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="callService">
<wsdl:port name="callPort" binding="tns:callBinding">
<soap:address location="http://localhost:8080/ode/processes/call"/>
</wsdl:port>
</wsdl:service>
<plnk:partnerLinkType name="callPartnerLinkType">
<plnk:role name="me" portType="tns:callPortType"/>
<plnk:role name="you" portType="tns:callPortType"/>
</plnk:partnerLinkType>
</wsdl:definitions>
-------------------call.bpel----------------
<process name="Call"
targetNamespace="http://localhost:8080/call"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:tns="http://localhost:8080/ode/call"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:test="http://localhost:8080/call.wsdl"
xmlns:echo="http://localhost:8080/echo.wsdl"
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
<import location="call.wsdl"
namespace="http://localhost:8080/call.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
<!-- <import location="echo.wsdl"
namespace="http://localhost:8080/echo.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>-->
<partnerLinks>
<partnerLink
name="callPartnerLink"
partnerLinkType="test:callPartnerLinkType"
myRole="me"/>
<partnerLink
name="asyncPartnerLink"
partnerLinkType="echo:echoPartnerLinkType"
myRole="you"
partnerRole="me"/>
</partnerLinks>
<variables>
<variable name="inMex" messageType="test:callMessage"/>
<variable name="invMess" messageType="echo:echoMessage"/>
<variable name="invRespMessage" messageType="echo:echoMessage"/>
<variable name="outMex" messageType="test:callMessage"/>
</variables>
<sequence>
<receive
name="rec"
operation="call"
partnerLink="callPartnerLink"
portType="test:callPortType"
variable="inMex"
createInstance="yes"/>
<assign>
<copy>
<from variable="inMex" part="tellMe"/>
<to variable="invMess" part="tellMe"/>
</copy>
</assign>
<invoke
name="inv"
operation="echoReq"
partnerLink="asyncPartnerLink"
portType="echo:echoInPortType"
inputVariable="invMess"
/>
<receive
name="respInv"
operation="echoResp"
partnerLink="asyncPartnerLink"
portType="echo:echoOutPortType"
variable="invRespMessage"
/>
<assign>
<copy>
<from variable="invRespMessage" part="tellMe"/>
<to variable="outMex" part="tellMe"/>
</copy>
</assign>
<reply operation="call"
partnerLink="callPartnerLink"
portType="test:callPortType"
variable="outMex">
</reply>
</sequence>
</process>
-------------echo.wsdl--------------------------------------
<?xml version="1.0" encoding ="UTF-8"?>
<wsdl:definitions
targetNamespace="http://localhost:8080/echo.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://localhost:8080/echo.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:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process">
<wsdl:message name="echoMessage">
<wsdl:part name="tellMe" element="xsd:string"/>
</wsdl:message>
<wsdl:portType name="echoInPortType">
<wsdl:operation name="echoReq">
<wsdl:input message="tns:echoMessage" name="echo"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="echoOutPortType">
<wsdl:operation name="echoResp">
<wsdl:input message="tns:echoMessage" name="echo"/>
</wsdl:operation>
</wsdl:portType>
<bpws:properties name="echoProperty" type="xsd:string"/>
<wsdl:binding name="echoInBinding" type="tns:echoInPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="echoReq">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body
namespace="http://localhost:8080/echo.wsdl"
use="literal"/>
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="echoOutBinding" type="tns:echoOutPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="echoResp">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body
namespace="http://localhost:8080/echo.wsdl"
use="literal"/>
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="echoService">
<wsdl:port name="echoInPort" binding="tns:echoInBinding">
<soap:address location="http://localhost:8080/ode/processes/echoIn"/>
</wsdl:port>
<wsdl:port name="echoOutPort" binding="tns:echoOutBinding">
<soap:address location="http://localhost:8080/ode/processes/echoOut"/>
</wsdl:port>
</wsdl:service>
<plnk:partnerLinkType name="echoPartnerLinkType">
<plnk:role name="me" portType="tns:echoInPortType"/>
<plnk:role name="you" portType="tns:echoOutPortType"/>
</plnk:partnerLinkType>
<!--<propertyAlias propertyName="tns:echoProperty"
messageType="tns:echoMessage"
part="echoString"
/>-->
</wsdl:definitions>
-----------------------echo.bpel----------------------------
<process name="Echo"
targetNamespace="http://localhost:8080/echo"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:tns="http://localhost:8080/ode/echo"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:test="http://localhost:8080/echo.wsdl"
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
<import location="echo.wsdl"
namespace="http://localhost:8080/echo.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
<partnerLinks>
<partnerLink
name="echoPartnerLink"
partnerLinkType="test:echoPartnerLinkType"
myRole="me"
partnerRole="you"/>
</partnerLinks>
<variables>
<variable name="inMex" messageType="test:echoMessage"/>
<variable name="outMex" messageType="test:echoMessage"/>
</variables>
<sequence>
<receive name="rec" partnerLink="echoPartnerLink" portType="test:echoInPortType" operation="echoReq" variable="inMex" createInstance="yes"/>
<assign name="ass">
<copy>
<from variable="inMex"/>
<to variable="outMex"/>
</copy>
</assign>
<invoke
name="echoResp"
partnerLink="echoPartnerLink"
portType="test:echoOutPortType"
operation="echoResp"
inputVariable="outMex"/>
</sequence>
</process>
---------------------deploy.xml----------------------------
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:callB="http://localhost:8080/call"
xmlns:callW="http://localhost:8080/call.wsdl"
xmlns:pns="http://localhost:8080/echo"
xmlns:wns="http://localhost:8080/echo.wsdl">
<process name="callB:Call">
<active>true</active>
<provide partnerLink="callPartnerLink">
<service name="callW:callService" port="callPort"/>
</provide>
<provide partnerLink="asyncPartnerLink">
<service name="wns:echoService" port="echoOutPort"/>
</provide>
<invoke partnerLink="asyncPartnerLink">
<service name="wns:echoService" port="echoInPort"/>
</invoke>
</process>
<process name="pns:Echo">
<type>pns:Echo</type>
<provide partnerLink="echoPartnerLink">
<service name="wns:echoService" port="echoInPort"/>
</provide>
<invoke partnerLink="echoPartnerLink">
<service name="wns:echoService" port="echoOutPort"/>
</invoke>
</process>
</deploy>
Re: Async BPEL process
Posted by Simone Maletta <si...@alice.it>.
Hy guys,
I solved the problem, I discover that to make an async call I need to
specify two diffrent services.
Thank you all
Simone
----- Original Message -----
From: "Simone Maletta" <si...@alice.it>
To: "Ode User" <us...@ode.apache.org>
Sent: Wednesday, February 13, 2008 9:48 AM
Subject: Async BPEL process
Hy guys I've got a question for you all,
I'm writing a silly application made of two BPEL process: the first one,
called call, is a sync process that invoke in an async manner the second
one, echo, and then reply to the caller.
As you may imagine the echo process nothing do than send back the received
string.
here is my problem: invoking call I've got a run-time error : "Unknown
operation "echoReq" on port Type "echoOutPortType"!
The think is that I never use echoOutPortType with echoReq operation.
I don't know why I got this.
I forget: I'm using ode1.0.
Here is my bpel and wsdl files and deploy.xml too!
Thank you all, regards
Simone
-------------------call.wsdl---------------
<?xml version="1.0" encoding ="UTF-8"?>
<wsdl:definitions
targetNamespace="http://localhost:8080/call.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://localhost:8080/call.wsdl"
xmlns:echo="http://localhost:8080/echo.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:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
<import location="echo.wsdl"
namespace="http://localhost:8080/echo.wsdl"/>
<wsdl:message name="callMessage">
<wsdl:part name="tellMe" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="callPortType">
<wsdl:operation name="call">
<wsdl:input message="tns:callMessage" name="Input"/>
<wsdl:output message="tns:callMessage" name="Output"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="callBinding" type="tns:callPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="call">
<soap:operation soapAction="" style="rpc"/>
<wsdl:input>
<soap:body
namespace="http://localhost:8080/call.wsdl"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body
namespace="http://localhost:8080/call.wsdl"
use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="callService">
<wsdl:port name="callPort" binding="tns:callBinding">
<soap:address location="http://localhost:8080/ode/processes/call"/>
</wsdl:port>
</wsdl:service>
<plnk:partnerLinkType name="callPartnerLinkType">
<plnk:role name="me" portType="tns:callPortType"/>
<plnk:role name="you" portType="tns:callPortType"/>
</plnk:partnerLinkType>
</wsdl:definitions>
-------------------call.bpel----------------
<process name="Call"
targetNamespace="http://localhost:8080/call"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:tns="http://localhost:8080/ode/call"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:test="http://localhost:8080/call.wsdl"
xmlns:echo="http://localhost:8080/echo.wsdl"
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
<import location="call.wsdl"
namespace="http://localhost:8080/call.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
<!-- <import location="echo.wsdl"
namespace="http://localhost:8080/echo.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>-->
<partnerLinks>
<partnerLink
name="callPartnerLink"
partnerLinkType="test:callPartnerLinkType"
myRole="me"/>
<partnerLink
name="asyncPartnerLink"
partnerLinkType="echo:echoPartnerLinkType"
myRole="you"
partnerRole="me"/>
</partnerLinks>
<variables>
<variable name="inMex" messageType="test:callMessage"/>
<variable name="invMess" messageType="echo:echoMessage"/>
<variable name="invRespMessage" messageType="echo:echoMessage"/>
<variable name="outMex" messageType="test:callMessage"/>
</variables>
<sequence>
<receive
name="rec"
operation="call"
partnerLink="callPartnerLink"
portType="test:callPortType"
variable="inMex"
createInstance="yes"/>
<assign>
<copy>
<from variable="inMex" part="tellMe"/>
<to variable="invMess" part="tellMe"/>
</copy>
</assign>
<invoke
name="inv"
operation="echoReq"
partnerLink="asyncPartnerLink"
portType="echo:echoInPortType"
inputVariable="invMess"
/>
<receive
name="respInv"
operation="echoResp"
partnerLink="asyncPartnerLink"
portType="echo:echoOutPortType"
variable="invRespMessage"
/>
<assign>
<copy>
<from variable="invRespMessage" part="tellMe"/>
<to variable="outMex" part="tellMe"/>
</copy>
</assign>
<reply operation="call"
partnerLink="callPartnerLink"
portType="test:callPortType"
variable="outMex">
</reply>
</sequence>
</process>
-------------echo.wsdl--------------------------------------
<?xml version="1.0" encoding ="UTF-8"?>
<wsdl:definitions
targetNamespace="http://localhost:8080/echo.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://localhost:8080/echo.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:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process">
<wsdl:message name="echoMessage">
<wsdl:part name="tellMe" element="xsd:string"/>
</wsdl:message>
<wsdl:portType name="echoInPortType">
<wsdl:operation name="echoReq">
<wsdl:input message="tns:echoMessage" name="echo"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="echoOutPortType">
<wsdl:operation name="echoResp">
<wsdl:input message="tns:echoMessage" name="echo"/>
</wsdl:operation>
</wsdl:portType>
<bpws:properties name="echoProperty" type="xsd:string"/>
<wsdl:binding name="echoInBinding" type="tns:echoInPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="echoReq">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body
namespace="http://localhost:8080/echo.wsdl"
use="literal"/>
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="echoOutBinding" type="tns:echoOutPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="echoResp">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body
namespace="http://localhost:8080/echo.wsdl"
use="literal"/>
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="echoService">
<wsdl:port name="echoInPort" binding="tns:echoInBinding">
<soap:address location="http://localhost:8080/ode/processes/echoIn"/>
</wsdl:port>
<wsdl:port name="echoOutPort" binding="tns:echoOutBinding">
<soap:address location="http://localhost:8080/ode/processes/echoOut"/>
</wsdl:port>
</wsdl:service>
<plnk:partnerLinkType name="echoPartnerLinkType">
<plnk:role name="me" portType="tns:echoInPortType"/>
<plnk:role name="you" portType="tns:echoOutPortType"/>
</plnk:partnerLinkType>
<!--<propertyAlias propertyName="tns:echoProperty"
messageType="tns:echoMessage"
part="echoString"
/>-->
</wsdl:definitions>
-----------------------echo.bpel----------------------------
<process name="Echo"
targetNamespace="http://localhost:8080/echo"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:tns="http://localhost:8080/ode/echo"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:test="http://localhost:8080/echo.wsdl"
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
<import location="echo.wsdl"
namespace="http://localhost:8080/echo.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
<partnerLinks>
<partnerLink
name="echoPartnerLink"
partnerLinkType="test:echoPartnerLinkType"
myRole="me"
partnerRole="you"/>
</partnerLinks>
<variables>
<variable name="inMex" messageType="test:echoMessage"/>
<variable name="outMex" messageType="test:echoMessage"/>
</variables>
<sequence>
<receive name="rec" partnerLink="echoPartnerLink"
portType="test:echoInPortType" operation="echoReq" variable="inMex"
createInstance="yes"/>
<assign name="ass">
<copy>
<from variable="inMex"/>
<to variable="outMex"/>
</copy>
</assign>
<invoke
name="echoResp"
partnerLink="echoPartnerLink"
portType="test:echoOutPortType"
operation="echoResp"
inputVariable="outMex"/>
</sequence>
</process>
---------------------deploy.xml----------------------------
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:callB="http://localhost:8080/call"
xmlns:callW="http://localhost:8080/call.wsdl"
xmlns:pns="http://localhost:8080/echo"
xmlns:wns="http://localhost:8080/echo.wsdl">
<process name="callB:Call">
<active>true</active>
<provide partnerLink="callPartnerLink">
<service name="callW:callService" port="callPort"/>
</provide>
<provide partnerLink="asyncPartnerLink">
<service name="wns:echoService" port="echoOutPort"/>
</provide>
<invoke partnerLink="asyncPartnerLink">
<service name="wns:echoService" port="echoInPort"/>
</invoke>
</process>
<process name="pns:Echo">
<type>pns:Echo</type>
<provide partnerLink="echoPartnerLink">
<service name="wns:echoService" port="echoInPort"/>
</provide>
<invoke partnerLink="echoPartnerLink">
<service name="wns:echoService" port="echoOutPort"/>
</invoke>
</process>
</deploy>