Problem: BPEL Designer
agusgr Feb 23, 2007 5:02 AMHello,
I' working with Eclipse 3.2.1 and the Eclipse BPEL Designer Runtimes 0.2.0.
The server is jBoss 4.04 GA with jbpm-bpel-1.1.Beta2.
I'm developing a very simple bpel process with an invocation to a external web service (the account service of the atm example).
I have the following files:
account.wsdl and client.wsdl: with the operations and messages of the web services
processBankArtifacts.wsdl: a file with the partner links definitions.
processBank.bpel:a file whit my procces definition.
I also have a processBank.bpelex file.
processBankArtifacts.wsdl and processBank.bpelex are generated automatically.
I import all the files in the bpel-definition.xml, but when I execute the deploy-definition task I foud this error:
2007-02-23 10:37:11,968 ERROR [org.jbpm.bpel.xml.ProblemHandler] processBank.bpel bpel process is invalid
org.jbpm.bpel.xml.BpelException: first role's port type not found [/bpws:process/bpws:partnerLinks/bpws:partnerLink[1]]
The files are:
client.wsdl
<?xml version="1.0"?> <definitions name="client" targetNamespace="urn:samples:cli" xmlns:tns="urn:samples:cli" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MESSAGE TYPE DEFINITION - Definition of the message types used as part of the port type defintions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <message name="clientRequestMessage"> <part name="name" type="xsd:string"/> </message> <message name="clientResponseMessage"> <part name="balance" type="xsd:double"/> </message> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PORT TYPE DEFINITION - A port type groups a set of operations into a logical service unit. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- portType implemented by the procesoBalance BPEL process --> <portType name="ClientPort"> <operation name="getBalance"> <input message="tns:clientRequestMessage" /> <output message="tns:clientResponseMessage"/> </operation> </portType> </definitions>
account.wsdl
<?xml version="1.0" encoding="UTF-8"?> <definitions targetNamespace="urn:samples:account" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:account" xmlns:typ="urn:samples:account" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetNamespace="urn:samples:account" xmlns="http://www.w3.org/2001/XMLSchema"> <complexType name="AccountOperation"> <sequence> <element name="customerName" type="xsd:string" /> <element name="amount" type="xsd:double" /> </sequence> </complexType> </schema> </types> <message name="customerMessage"> <part name="customerName" type="xsd:string" /> </message> <message name="accessMessage"> <part name="granted" type="xsd:boolean" /> </message> <message name="balanceMessage"> <part name="balance" type="xsd:double" /> </message> <message name="accountOperation"> <part name="body" type="typ:AccountOperation" /> </message> <portType name="AccountSystem"> <operation name="checkAccess"> <input message="tns:customerMessage" /> <output message="tns:accessMessage" /> </operation> <operation name="queryBalance"> <input message="tns:customerMessage" /> <output message="tns:balanceMessage" /> </operation> <operation name="updateBalance"> <input message="tns:accountOperation" /> <output message="tns:balanceMessage" /> </operation> </portType> </definitions>
processBankArtifacts.wsdl
<?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/" xmlns:tns="urn:samples:processArtifacts" xmlns:wsdl="urn:samples:account" xmlns:wsdl1="urn:samples:cli" name="processBankArtifacts" targetNamespace="urn:samples:processArtifacts"> <plnk:partnerLinkType name="Process-Account"> <plnk:role name="Account" portType="wsdl:AccountSystem"/> </plnk:partnerLinkType> <plnk:partnerLinkType name="Client-Process"> <plnk:role name="Client" portType="wsdl1:ClientPort"/> </plnk:partnerLinkType> <import location="account.wsdl" namespace="urn:samples:account"/> <import location="client.wsdl" namespace="urn:samples:cli"/> </definitions>
processBank.bpel
<?xml version="1.0" encoding="UTF-8"?> <bpws:process xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:ns="urn:samples:processArtifacts" xmlns:ns0="urn:samples:cli" xmlns:ns1="urn:samples:account" xmlns:tns="urn:samples:process" exitOnStandardFault="yes" name="processBank" suppressJoinFailure="yes" targetNamespace="urn:samples:process"> <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="client.wsdl" namespace="urn:samples:cli"/> <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="account.wsdl" namespace="urn:samples:account"/> <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="processBankArtifacts.wsdl" namespace="urn:samples:processArtifacts"/> <bpws:partnerLinks> <bpws:partnerLink myRole="Client" name="Client" partnerLinkType="ns:Client-Process"/> <bpws:partnerLink name="Bank" partnerLinkType="ns:Process-Account" partnerRole="Account"/> </bpws:partnerLinks> <bpws:variables> <bpws:variable messageType="ns0:clientRequestMessage" name="ClientRequest"/> <bpws:variable messageType="ns0:clientResponseMessage" name="ClientResponse"/> <bpws:variable messageType="ns1:balanceMessage" name="BankResponse"/> <bpws:variable messageType="ns1:customerMessage" name="BankRequest"/> </bpws:variables> <bpws:sequence> <bpws:receive createInstance="yes" name="Receive" operation="getBalance" partnerLink="Client" portType="ns0:ClientPort" variable="ClientRequest"/> <bpws:assign name="Assign" validate="no"> <bpws:copy> <bpws:from part="name" variable="ClientRequest"/> <bpws:to part="customerName" variable="BankRequest"/> </bpws:copy> </bpws:assign> <bpws:invoke inputVariable="BankRequest" name="Invoke" operation="queryBalance" outputVariable="BankResponse" partnerLink="Bank" portType="ns1:AccountSystem"/> <bpws:assign name="Assign1" validate="no"> <bpws:copy> <bpws:from part="balance" variable="BankResponse"/> <bpws:to part="balance" variable="ClientResponse"/> </bpws:copy> </bpws:assign> <bpws:reply name="Reply" operation="getBalance" partnerLink="Client" portType="ns0:ClientPort" variable="ClientResponse"/> </bpws:sequence> </bpws:process>
Where is the problem?
Please, can someone help me?
Sorry for the long post and thanks in advance
Agus