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>