External service reference in a BPEL service
ghostavo Nov 18, 2013 1:08 PMI have a BPEL service that was adapted from one of the quickstarts that invokes an external service.
However, when I try to execute this BPEL service, according to the switchyard debug log he can't find the referenced service, which I assume means I'm refering to it incorrectly.
The specific log message:
ERROR [org.switchyard.component.bpel.riftsaw.RiftsawServiceLocator] (ODEServer-1) No service found for '{urn:pt.it.av.atnog.apollo:mail:1.0.0-SNAPSHOT}SendMail'
The deploy.xml file:
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03" xmlns:examples="http://www.jboss.org/bpel/examples" xmlns:domain="urn:switchyard-quickstart:bpel-say-hello:0.1.0" xmlns:tns="urn:pt.it.av.atnog.apollo:mail:1.0.0-SNAPSHOT"> <process name="examples:SayHello"> <active>true</active> <process-events generate="all"/> <provide partnerLink="client"> <service name="domain:SayHelloService" port="ignored"/> </provide> <invoke partnerLink="SendMailPL" usePeer2Peer="false"> <service name="tns:SendMail" port="ignored"/> </invoke> </process> </deploy>
The bpel file:
<bpel:process name="SayHello" targetNamespace="http://www.jboss.org/bpel/examples" suppressJoinFailure="yes" xmlns:tns="http://www.jboss.org/bpel/examples" xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:aac="urn:pt.it.av.atnog.Apollo:GreenHouseServices:1.0" xmlns:aad="urn:pt.it.av.atnog.apollo:mail:1.0.0-SNAPSHOT" > <bpel:import location="SayHelloArtifacts.wsdl" namespace="http://www.jboss.org/bpel/examples" importType="http://schemas.xmlsoap.org/wsdl/" /> <bpel:import location="SendMail.wsdl" namespace="urn:pt.it.av.atnog.apollo:mail:1.0.0-SNAPSHOT" importType="http://schemas.xmlsoap.org/wsdl/" /> <bpel:partnerLinks> <bpel:partnerLink name="client" partnerLinkType="tns:SayHello" myRole="SayHelloProvider" /> <bpel:partnerLink name="SendMailPL" partnerLinkType="aad:SendEmailPartnerLT" partnerRole="SendMail" /> </bpel:partnerLinks> <bpel:variables> <bpel:variable name="ReceiveSayHelloVar" messageType="tns:SayHelloRequestMessage"/> <bpel:variable name="ReplySayHelloVar" messageType="tns:SayHelloResponseMessage"/> <bpel:variable name="SendMailInput" messageType="aad:email"/> <bpel:variable name="SendMailOutput" messageType="aad:reply"/> </bpel:variables> <bpel:sequence name="main"> <bpel:receive name="ReceiveSayHello" partnerLink="client" portType="tns:SayHello" operation="sayHello" variable="ReceiveSayHelloVar" createInstance="yes"/> <bpel:assign validate="no" name="AssignName"> <bpel:copy> <bpel:from> <bpel:literal> <tns:HelloWorldResponse xmlns:tns="http://www.jboss.org/bpel/examples" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <tns:result/> </tns:HelloWorldResponse> </bpel:literal> </bpel:from> <bpel:to variable="ReplySayHelloVar" part="parameters"/> </bpel:copy> <bpel:copy> <bpel:from> <![CDATA[concat('Hello ', $ReceiveSayHelloVar.parameters/tns:input)]]> </bpel:from> <bpel:to part="parameters" variable="ReplySayHelloVar"> <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"> <![CDATA[tns:result]]> </bpel:query> </bpel:to> </bpel:copy> </bpel:assign> <bpel:reply name="ReplySayHello" partnerLink="client" portType="tns:SayHello" operation="sayHello" variable="ReplySayHelloVar" /> <bpel:assign validate="no" name="AssignMail"> <bpel:copy> <bpel:from> <bpel:literal> <email xmlns="urn:pt.it.av.atnog.apollo:mail:1.0.0-SNAPSHOT" > <to xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">gmpp@av.it.pt</to> <topic xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">topic</topic> <content xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">content</content> </email> </bpel:literal> </bpel:from> <bpel:to variable="SendMailInput" part="parameters" /> </bpel:copy> </bpel:assign> <bpel:invoke partnerLink="SendMailPL" portType="SendMailPortType" operation="sendMail" inputVariable="SendMailInput" outputVariable="SendMailOutput"/> </bpel:sequence> </bpel:process>
The switchyard.xml file:
<?xml version="1.0" encoding="UTF-8"?> <switchyard xmlns="urn:switchyard-config:switchyard:1.0" xmlns:swyd="urn:switchyard-config:switchyard:1.0" xmlns:trfm="urn:switchyard-config:transform:1.0" xmlns:bean="urn:switchyard-component-bean:config:1.0" xmlns:bpel="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:sh="http://www.jboss.org/bpel/examples" targetNamespace="urn:switchyard-quickstart:bpel-say-hello:0.1.0" name="sayhello"> <sca:composite name="sayhello" targetNamespace="urn:switchyard-quickstart:bpel-say-hello:0.1.0"> <sca:service name="SayHelloService" promote="SayHelloService"> <binding.soap xmlns="urn:switchyard-component-soap:config:1.0"> <wsdl>SayHelloArtifacts.wsdl</wsdl> <socketAddr>:18001</socketAddr> </binding.soap> </sca:service> <sca:reference name="SendMail" multiplicity="1..1" promote="SendMailBean/SendMail"> <binding.soap xmlns="urn:switchyard-component-soap:config:1.0"> <wsdl>SendMail.wsdl</wsdl> </binding.soap> </sca:reference> <sca:component name="SayHelloService"> <bpel:implementation.bpel xmlns:sh="http://www.jboss.org/bpel/examples" process="sh:SayHello" /> <sca:service name="SayHelloService"> <sca:interface.wsdl interface="SayHelloArtifacts.wsdl#wsdl.porttype(SayHello)"/> </sca:service> <sca:reference name="SendMail"> <sca:interface.wsdl interface="SendMail.wsdl#wsdl.porttype(SendMailPortType)"/> </sca:reference> </sca:component> </sca:composite> </switchyard>
and the WSDL files for the BPEL service and the invoked service respectively:
<?xml version="1.0"?> <definitions name="SayHello" targetNamespace="http://www.jboss.org/bpel/examples" xmlns:tns="http://www.jboss.org/bpel/examples" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <types> <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.jboss.org/bpel/examples" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="sayHello"> <complexType> <sequence> <element name="input" type="string" /> </sequence> </complexType> </element> <element name="sayHelloResponse"> <complexType> <sequence> <element name="results" type="string"/> </sequence> </complexType> </element> </schema> </types> <message name="SayHelloRequestMessage"> <part name="parameters" element="tns:sayHello"/> </message> <message name="SayHelloResponseMessage"> <part name="parameters" element="tns:sayHelloResponse"/> </message> <portType name="SayHello"> <operation name="sayHello"> <input message="tns:SayHelloRequestMessage" /> <output message="tns:SayHelloResponseMessage"/> </operation> </portType> <plnk:partnerLinkType name="SayHello"> <plnk:role name="SayHelloProvider" portType="tns:SayHello"/> </plnk:partnerLinkType> <binding name="SayHelloBinding" type="tns:SayHello"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation name="sayHello"> <soap:operation soapAction="http://www.jboss.org/bpel/examples/sayHello" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <service name="SayHelloService"> <port name="SayHelloPort" binding="tns:SayHelloBinding"> <soap:address location="http://localhost:8080/SayHelloProcess" /> </port> </service> </definitions>
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:pt.it.av.atnog.apollo:mail:1.0.0-SNAPSHOT" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:pt.it.av.atnog.apollo:mail:1.0.0-SNAPSHOT"> <types> <schema xmlns="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:pt.it.av.atnog.apollo:mail:1.0.0-SNAPSHOT"> <element name="email"> <complexType> <sequence> <choice maxOccurs="unbounded" minOccurs="1"> <element name="to" type="xsd:string"/> </choice> <element name="topic" type="xsd:string"/> <element name="content" type="xsd:string"/> </sequence> </complexType> </element> <element name="reply" type="xsd:boolean"/> </schema> </types> <message name="email"> <part element="tns:email" name="parameters"> </part> </message> <message name="reply"> <part element="tns:reply" name="parameters"> </part> </message> <portType name="SendMailPortType"> <operation name="sendMail"> <input message="tns:email" name="email"> </input> <output message="tns:reply" name="reply"> </output> </operation> </portType> <binding name="SendMailSoapBinding" type="tns:SendMailPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="sendMail"> <soap:operation soapAction="sendMail" style="document"/> <input name="email"> <soap:body use="encoded"/> </input> <output name="reply"> <soap:body use="literal"/> </output> </operation> </binding> <service name="SendMail"> <port binding="tns:SendMailSoapBinding" name="SendMailPort"> <soap:address location="http://yard.aws.atnog.av.it.pt/SendMail/SendMail"/> </port> </service> <plnk:partnerLinkType name="SendEmailPartnerLT"> <plnk:role name="SendMail" portType="tns:SendMailPortType"/> </plnk:partnerLinkType> </definitions>
Attached are the BPEL service files, there are commented sections and an extra file for another service I want to invoke, but that I didn't want to use while I couldn't invoke this one
-
BPEL Service.tar.gz 4.6 KB