8 Replies Latest reply on Dec 17, 2005 10:21 PM by aguizar

    Problem during deploying my own bpel process in jbpm bpel (B

    fabricio.nogueira

      Hello all,

      I want to deploy a very simple process in jbpm Bpel. I could configure and test helloworld example. Now, I have a web service (in my localhost using axis) that only receives a string and replies it with a gretting message. I modelled this process using JDeveloper from Oracle due to facility. This process receives the string and call the web service to get the gretting message.

      My bpel process is this:

      <!--
       /////////////////////////////////////////////////////////////////////////////////////////////
       // Oracle JDeveloper BPEL Designer
       //
       // Created: Thu Dec 08 22:17:32 BRST 2005
       // Author: Fasilva
       // Purpose: Synchronous BPEL Process
       /////////////////////////////////////////////////////////////////////////////////////////////
      -->
      <process name="myEcho" targetNamespace="http://xmlns.oracle.com/myEcho" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:ns1="http://localhost:8081/axis/myEcho.jws" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:client="http://xmlns.oracle.com/myEcho" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
       <partnerLinks>
       <partnerLink name="client" partnerLinkType="client:myEcho" myRole="myEchoProvider"/>
       <partnerLink myRole="myEcho_Role" name="myEcho" partnerRole="myEcho_Role" partnerLinkType="ns1:myEcho_PL"/>
       </partnerLinks>
       <variables>
       <variable name="inputVariable" messageType="client:myEchoRequestMessage"/>
       <variable name="outputVariable" messageType="client:myEchoResponseMessage"/>
       <variable name="Invoke_1_echo_InputVariable" messageType="ns1:echoRequest"/>
       <variable name="Invoke_1_echo_OutputVariable" messageType="ns1:echoResponse"/>
       </variables>
       <sequence name="main">
       <receive name="receiveInput" partnerLink="client" portType="client:myEcho" operation="process" variable="inputVariable" createInstance="yes"/>
       <scope name="Scope_1">
       <sequence name="Sequence_1">
       <assign name="InEcho">
       <copy>
       <from variable="inputVariable" part="payload" query="/client:myEchoProcessRequest/client:input"/>
       <to variable="Invoke_1_echo_InputVariable" part="s"/>
       </copy>
       </assign>
       <invoke name="myEcho" partnerLink="myEcho" portType="ns1:myEcho" operation="echo" inputVariable="Invoke_1_echo_InputVariable" outputVariable="Invoke_1_echo_OutputVariable"/>
       <assign name="EchoOut">
       <copy>
       <from variable="Invoke_1_echo_OutputVariable" part="echoReturn"/>
       <to variable="outputVariable" part="payload" query="/client:myEchoProcessResponse/client:result"/>
       </copy>
       </assign>
       </sequence>
       </scope>
       <reply name="replyOutput" partnerLink="client" portType="client:myEcho" operation="process" variable="outputVariable"/>
       </sequence>
      </process>
      


      And the wsdl for this process is:

      <?xml version="1.0" encoding="UTF-8"?>
      <definitions name="myEcho"
       targetNamespace="http://xmlns.oracle.com/myEcho"
       xmlns="http://schemas.xmlsoap.org/wsdl/"
       xmlns:client="http://xmlns.oracle.com/myEcho"
       xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
       <types>
       <schema attributeFormDefault="qualified"
       elementFormDefault="qualified"
       targetNamespace="http://xmlns.oracle.com/myEcho"
       xmlns="http://www.w3.org/2001/XMLSchema">
       <element name="myEchoProcessRequest">
       <complexType>
       <sequence>
       <element name="input" type="string"/>
       </sequence>
       </complexType>
       </element>
       <element name="myEchoProcessResponse">
       <complexType>
       <sequence>
       <element name="result" type="string"/>
       </sequence>
       </complexType>
       </element>
       </schema>
       </types>
      
       <message name="myEchoRequestMessage">
       <part name="payload" element="client:myEchoProcessRequest"/>
       </message>
       <message name="myEchoResponseMessage">
       <part name="payload" element="client:myEchoProcessResponse"/>
       </message>
      
      
       <portType name="myEcho">
       <operation name="process">
       <input message="client:myEchoRequestMessage" />
       <output message="client:myEchoResponseMessage"/>
       </operation>
       </portType>
       <plnk:partnerLinkType name="myEcho">
       <plnk:role name="myEchoProvider">
       <plnk:portType name="client:myEcho"/>
       </plnk:role>
       </plnk:partnerLinkType>
      </definitions>



      I set build.properties, hibernate.properties and build.xml to keep up with my configuration.After that I could run the command "ant pack-definition" without problems, But when I need to run the next command "ant deploy-definition". I'm getting the following error:

      [deploypar] 20:55:23,798 DEBUG BpelReader : upgraded bpel document: myEcho.bpel
      [deploypar] 20:55:23,808 ERROR ProblemCollector : myEcho.bpel bpel process is invalid.
      [deploypar] org.jbpm.bpel.xml.BpelException: message type ns1:echoRequest not found [/process/variables/variable[3]]
      [deploypar] at org.jbpm.bpel.xml.BpelReader.getMessageTypeInfo(BpelReader.java:620)
      [deploypar] at org.jbpm.bpel.xml.BpelReader.getTypeInfo(BpelReader.java:597)
      [deploypar] at org.jbpm.bpel.xml.BpelReader.readVariable(BpelReader.java:580)
      [deploypar] at org.jbpm.bpel.xml.BpelReader.readVariables(BpelReader.java:561)
      [deploypar] at org.jbpm.bpel.xml.BpelReader.readScope(BpelReader.java:404)
      [deploypar] at org.jbpm.bpel.xml.BpelReader.read(BpelReader.java:206)
      [deploypar] at org.jbpm.bpel.xml.BpelReader.read(BpelReader.java:162)
      [deploypar] at org.jbpm.bpel.par.BpelArchiveParser.readFromArchive(BpelArchiveParser.java:28)
      [deploypar] at org.jbpm.jpdl.par.ProcessArchive.parseProcessDefinition(ProcessArchive.java:46)
      [deploypar] at org.jbpm.graph.def.ProcessDefinition.parseParZipInputStream(ProcessDefinition.java:154)
      [deploypar] at org.jbpm.jpdl.par.ProcessArchiveDeployer.deployZipInputStream(ProcessArchiveDeployer.java:46)
      [deploypar] at org.jbpm.ant.DeployParTask.deploy(DeployParTask.java:69)
      [deploypar] at org.jbpm.ant.DeployParTask.execute(DeployParTask.java:57)
      [deploypar] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
      [deploypar] at org.apache.tools.ant.Task.perform(Task.java:364)
      [deploypar] at org.apache.tools.ant.Target.execute(Target.java:341)
      [deploypar] at org.apache.tools.ant.Target.performTasks(Target.java:369)
      [deploypar] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
      [deploypar] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
      [deploypar] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
      [deploypar] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
      [deploypar] at org.apache.tools.ant.Main.runBuild(Main.java:668)
      [deploypar] at org.apache.tools.ant.Main.startAnt(Main.java:187)
      [deploypar] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
      [deploypar] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
      [deploypar] 20:55:23,933 DEBUG ProcessArchiveDeployer : starting transaction to deploy process BpelDefinition(myEcho)
      [deploypar] 20:55:24,840 DEBUG ProcessArchiveDeployer : flushing...
      [deploypar] 20:55:25,265 DEBUG ProcessArchiveDeployer : committing transaction to deploy process BpelDefinition(myEcho)
      


      I can't understand why that message " message type ns1:echoRequest not found [/process/variables/variable[3]]" is being showed.

      Could you help me to understand it please?


        • 1. Re: Problem during deploying my own bpel process in jbpm bpe
          aguizar

          First, let me elaborate on the error message. /process/variables/variable[3] is the XPath to the "offending" element:

          <variables>
           <variable name="inputVariable" messageType="client:myEchoRequestMessage"/>
           <variable name="outputVariable" messageType="client:myEchoResponseMessage"/>
           <variable name="Invoke_1_echo_InputVariable" messageType="ns1:echoRequest"/>
           <variable name="Invoke_1_echo_OutputVariable" messageType="ns1:echoResponse"/>
           </variables>

          By "message type not found" I mean ns1:echoRequest does not exist in the WSDL documents known to the process deployer (referenced in file bpel-definition.xml).

          Going to your WSDL document, I see a myEchoRequestMessage, but not a echoRequest. Also, the namespace URI associated with ns1 in the process document (http://localhost:8081/axis/myEcho.jws) does not match the target namespace of your WSDL definitions(http://xmlns.oracle.com/myEcho). Check it out.

          • 2. Re: Problem during deploying my own bpel process in jbpm bpe
            fabricio.nogueira

            Thanks Alejandro,

            I'll check it out.

            • 3. Re: Problem during deploying my own bpel process in jbpm bpe
              aguizar

              Fabricio,

              I'm very interested in verifying our BPEL extension is able to run processes designed in other products' editors. Let me know your results.

              • 4. Re: Problem during deploying my own bpel process in jbpm bpe
                fabricio.nogueira

                Ok Alejandro,

                I'll post all my success and insuccess with this experience.

                Thanks,

                Fabricio.

                • 5. Re: Problem during deploying my own bpel process in jbpm bpe
                  fabricio.nogueira

                  Hello Alejandro and Jbpm users,

                  I think I don't know how to deploy this bpel process. I'll try to explain how JDeveloper Bpel designer created the files. When I modelled my bpel process I noticed that a wsdl file for the web service that I'm calling was generated and I didn't put it in my previous bpel-definition.xml file. Now I have my myEcho folders structured as:

                  myEcho
                   hibernate.properties
                   jndi.properties
                   log4j.properties
                   build.properties
                   build.xml
                   [definition]
                   bpel-definition.xml
                   myEcho.bpel
                   myEcho.wsdl
                   myEcho1.wsdl
                  


                  And the files are:

                  bpel-definition.xml
                  <!-- specifies the location of the process definition -->
                  <bpelDefinition location="myEcho.bpel" xmlns="http://jbpm.org/bpel"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://jbpm.org/bpel
                   http://jbpm.org/bpel/bpel_definition_1_0.xsd">
                  
                   <!-- makes WSDL interface elements available to the process -->
                   <imports>
                   <wsdl namespace="http://xmlns.oracle.com/myEcho" location="myEcho.wsdl"/>
                   <wsdl namespace="http://localhost:8081/axis/myEcho.jws" location="myEcho1.wsdl"/>
                   </imports>
                  
                  </bpelDefinition>
                  


                  myEcho.bpel file is:

                  <!--
                   /////////////////////////////////////////////////////////////////////////////////////////////
                   // Oracle JDeveloper BPEL Designer
                   //
                   // Created: Thu Dec 08 22:17:32 BRST 2005
                   // Author: Fasilva
                   // Purpose: Synchronous BPEL Process
                   /////////////////////////////////////////////////////////////////////////////////////////////
                  -->
                  <process name="myEcho" targetNamespace="http://xmlns.oracle.com/myEcho" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:ns1="http://localhost:8081/axis/myEcho.jws" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:client="http://xmlns.oracle.com/myEcho" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
                  
                  <!-- ================================================================= -->
                  <!-- PARTNERLINKS -->
                  <!-- List of services participating in this BPEL process -->
                  <!-- ================================================================= -->
                  
                   <partnerLinks>
                   <partnerLink name="client" partnerLinkType="client:myEcho" myRole="myEchoProvider"/>
                   <partnerLink myRole="myEcho_Role" name="myEcho" partnerRole="myEcho_Role" partnerLinkType="ns1:myEcho_PL"/>
                   </partnerLinks>
                  
                  <!-- ================================================================= -->
                  <!-- VARIABLES -->
                  <!-- List of messages and XML documents used within this BPEL process -->
                  <!-- ================================================================= -->
                  
                   <variables><!-- Reference to the message passed as input during initiation -->
                   <variable name="inputVariable" messageType="client:myEchoRequestMessage"/>
                  
                  <!-- Reference to the message that will be returned to the requester -->
                  
                   <variable name="outputVariable" messageType="client:myEchoResponseMessage"/>
                   <variable name="Invoke_1_echo_InputVariable" messageType="ns1:echoRequest"/>
                   <variable name="Invoke_1_echo_OutputVariable" messageType="ns1:echoResponse"/>
                   </variables>
                  
                  <!-- ================================================================= -->
                  <!-- ORCHESTRATION LOGIC -->
                  <!-- Set of activities coordinating the flow of messages across the -->
                  <!-- services integrated within this business process -->
                  <!-- ================================================================= -->
                  
                   <sequence name="main">
                  <!--
                   Receive input from requestor.
                   Note: This maps to operation defined in myEcho.wsdl
                  -->
                   <receive name="receiveInput" partnerLink="client" portType="client:myEcho" operation="process" variable="inputVariable" createInstance="yes"/>
                  
                   <!-- Generate reply to synchronous request -->
                  
                   <scope name="Scope_1">
                   <sequence name="Sequence_1">
                   <assign name="InEcho">
                   <copy>
                   <from variable="inputVariable" part="payload" query="/client:myEchoProcessRequest/client:input"/>
                   <to variable="Invoke_1_echo_InputVariable" part="s"/>
                   </copy>
                   </assign>
                   <invoke name="myEcho" partnerLink="myEcho" portType="ns1:myEcho" operation="echo" inputVariable="Invoke_1_echo_InputVariable" outputVariable="Invoke_1_echo_OutputVariable"/>
                   <assign name="EchoOut">
                   <copy>
                   <from variable="Invoke_1_echo_OutputVariable" part="echoReturn"/>
                   <to variable="outputVariable" part="payload" query="/client:myEchoProcessResponse/client:result"/>
                   </copy>
                   </assign>
                   </sequence>
                   </scope>
                   <reply name="replyOutput" partnerLink="client" portType="client:myEcho" operation="process" variable="outputVariable"/>
                   </sequence>
                  </process>
                  


                  myEcho.wsdl is:

                  <?xml version="1.0" encoding="UTF-8"?>
                  <definitions name="myEcho"
                   targetNamespace="http://xmlns.oracle.com/myEcho"
                   xmlns="http://schemas.xmlsoap.org/wsdl/"
                   xmlns:client="http://xmlns.oracle.com/myEcho"
                   xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
                  
                   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   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.
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
                   <types>
                   <schema attributeFormDefault="qualified"
                   elementFormDefault="qualified"
                   targetNamespace="http://xmlns.oracle.com/myEcho"
                   xmlns="http://www.w3.org/2001/XMLSchema">
                   <element name="myEchoProcessRequest">
                   <complexType>
                   <sequence>
                   <element name="input" type="string"/>
                   </sequence>
                   </complexType>
                   </element>
                   <element name="myEchoProcessResponse">
                   <complexType>
                   <sequence>
                   <element name="result" type="string"/>
                   </sequence>
                   </complexType>
                   </element>
                   </schema>
                   </types>
                  
                   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   MESSAGE TYPE DEFINITION - Definition of the message types used as
                   part of the port type defintions
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
                   <message name="myEchoRequestMessage">
                   <part name="payload" element="client:myEchoProcessRequest"/>
                   </message>
                   <message name="myEchoResponseMessage">
                   <part name="payload" element="client:myEchoProcessResponse"/>
                   </message>
                  
                   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   PORT TYPE DEFINITION - A port type groups a set of operations into
                   a logical service unit.
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
                  
                   <!-- portType implemented by the myEcho BPEL process -->
                   <portType name="myEcho">
                   <operation name="process">
                   <input message="client:myEchoRequestMessage" />
                   <output message="client:myEchoResponseMessage"/>
                   </operation>
                   </portType>
                  
                   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   PARTNER LINK TYPE DEFINITION
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
                   <plnk:partnerLinkType name="myEcho">
                   <plnk:role name="myEchoProvider">
                   <plnk:portType name="client:myEcho"/>
                   </plnk:role>
                   </plnk:partnerLinkType>
                  </definitions>
                  


                  And now I have this file about the web service wsdl:

                  <definitions
                  
                   targetNamespace="http://localhost:8081/axis/myEcho.jws"
                   xmlns="http://schemas.xmlsoap.org/wsdl/"
                   xmlns:impl="http://localhost:8081/axis/myEcho.jws"
                   xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
                   xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                   >
                   <import namespace="http://localhost:8081/axis/myEcho.jws" location="http://localhost:8081/axis/myEcho.jws?wsdl"/>
                   <plnk:partnerLinkType name="myEcho_PL">
                   <plnk:role name="myEcho_Role">
                   <plnk:portType name="impl:myEcho"/>
                   </plnk:role>
                   </plnk:partnerLinkType>
                  </definitions>
                  


                  Now, with this new configurarion I run ant pack-definition and the myEcho-definition.par is generated ok. And I'm getting a diferent error running ant deploy-definition.

                  [deploypar] 23:08:59,152 DEBUG ImportWsdlLocator : upgraded wsdl document: myEcho.wsdl
                  [deploypar] 23:08:59,179 INFO BpelReader : read wsdl definitions: myEcho.wsdl
                  [deploypar] 23:08:59,189 DEBUG ImportWsdlLocator : upgraded wsdl document: myEcho1.wsdl
                  [deploypar] 23:08:59,263 INFO BpelReader : read wsdl definitions: myEcho1.wsdl
                  [deploypar] 23:08:59,374 DEBUG BpelReader : upgraded bpel document: myEcho.bpel
                  [deploypar] 23:08:59,390 ERROR ProblemCollector : myEcho.bpel bpel process is invalid.
                  [deploypar] org.jbpm.bpel.xml.BpelException: both myRole and partnerRole are specified, but there is only one role [/process/partnerLinks/partnerLink[2]]
                  [deploypar] at org.jbpm.bpel.xml.BpelReader.readPartnerLink(BpelReader.java:754)
                  [deploypar] at org.jbpm.bpel.xml.BpelReader.readPartnerLinks(BpelReader.java:686)
                  [deploypar] at org.jbpm.bpel.xml.BpelReader.readScope(BpelReader.java:408)
                  [deploypar] at org.jbpm.bpel.xml.BpelReader.read(BpelReader.java:206)
                  [deploypar] at org.jbpm.bpel.xml.BpelReader.read(BpelReader.java:162)
                  [deploypar] at org.jbpm.bpel.par.BpelArchiveParser.readFromArchive(BpelArchiveParser.java:28)
                  [deploypar] at org.jbpm.jpdl.par.ProcessArchive.parseProcessDefinition(ProcessArchive.java:46)
                  [deploypar] at org.jbpm.graph.def.ProcessDefinition.parseParZipInputStream(ProcessDefinition.java:154)
                  [deploypar] at org.jbpm.jpdl.par.ProcessArchiveDeployer.deployZipInputStream(ProcessArchiveDeployer.java:46)
                  [deploypar] at org.jbpm.ant.DeployParTask.deploy(DeployParTask.java:69)
                  [deploypar] at org.jbpm.ant.DeployParTask.execute(DeployParTask.java:57)
                  [deploypar] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
                  [deploypar] at org.apache.tools.ant.Task.perform(Task.java:364)
                  [deploypar] at org.apache.tools.ant.Target.execute(Target.java:341)
                  [deploypar] at org.apache.tools.ant.Target.performTasks(Target.java:369)
                  [deploypar] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
                  [deploypar] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
                  [deploypar] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
                  [deploypar] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
                  [deploypar] at org.apache.tools.ant.Main.runBuild(Main.java:668)
                  [deploypar] at org.apache.tools.ant.Main.startAnt(Main.java:187)
                  [deploypar] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
                  [deploypar] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
                  [deploypar] 23:08:59,492 DEBUG ProcessArchiveDeployer : starting transaction to deploy process BpelDefinition(myEcho)
                  [deploypar] 23:09:00,041 DEBUG ProcessArchiveDeployer : flushing...
                  [deploypar] 23:09:00,172 DEBUG ProcessArchiveDeployer : committing transaction to deploy process BpelDefinition(myEcho)
                  


                  Maybe I don't know how to make my bpel-definition.xml file. Is it necessary to have the myEcho1.wsdl inside it? I really don't know how to deploy this process; :-(

                  Thanks in advance.

                  Fabrício

                  • 6. Re: Problem during deploying my own bpel process in jbpm bpe
                    aguizar

                    This is not a deployment problem. The BPEL document contains an error. Take a look at /process/partnerLinks/partnerLink[2]:

                    <partnerLinks>
                     <partnerLink name="client" partnerLinkType="client:myEcho" myRole="myEchoProvider"/>
                     <partnerLink name="myEcho" partnerRole="myEcho_Role" myRole="myEcho_Role" partnerLinkType="ns1:myEcho_PL"/>
                     </partnerLinks>

                    It defines a bidirectional relationship between the process and an external service. Now follow the partner link type reference to {http://localhost:8081/axis/myEcho.jws}myEcho_PL:
                    <plnk:partnerLinkType name="myEcho_PL">
                     <plnk:role name="myEcho_Role">
                     <plnk:portType name="impl:myEcho"/>
                     </plnk:role>
                     </plnk:partnerLinkType>

                    It declares an unidirectional relationship, since it contains only one role subelement. This makes sense because your process does not receive through the myEcho partner link. In this situation, the partner link has no reason to assign a role to the BPEL service. Therefore, you should drop the myRole attribute.

                    • 7. Re: Problem during deploying my own bpel process in jbpm bpe
                      fabricio.nogueira

                      Alejandro,

                      thanks for your reply, the ant deploy-definition command worked now. I'm going to folow the next steps now. But, It's weird because those files were all generated by Oracle JDeveloper Bpel Designer and work with Oracle Business Process Manager deployment.

                      Maybe, this is a stupid question. But what do you mean with "This makes sense because your process does not receive through the myEcho partner link". Are you saying that the service won't return anything to the process? Because, myEcho service returns a greeting message to the process. As you can see in the jws:

                      public class myEcho {
                      
                       public String echo(String s){
                       return "Hello, " + s + ". Nice to meet you!";
                       }
                      
                      }
                      


                      Am I making a misunderstanding about what you said?

                      Thanks in advance,

                      Fabrício.




                      • 8. Re: Problem during deploying my own bpel process in jbpm bpe
                        aguizar

                         

                        It's weird because those files were all generated by Oracle JDeveloper Bpel Designer and work with Oracle Business Process Manager deployment

                        Quite weird. The BPEL spec is clear in this point. From section 7.2:
                        The role of the business process itself is indicated by the attribute myRole and the role of the partner is indicated by the attribute partnerRole. In the degenerate case where a partnerLinkType has only one role, one of these attributes is omitted as appropriate


                        what do you mean with "This makes sense because your process does not receive through the myEcho partner link"

                        I meant asynchronous reception: using the partner link in a receive activity to get a separate response to a previous request placed with an one-way invoke activity. Such an interaction pattern is quite different from a request/response invoke activity, as it requires the process to expose a callback interface to the partner service.