4 Replies Latest reply on Jun 25, 2007 3:01 AM by Sami Rintala

    BPEL process doesn't respond

    Sami Rintala Newbie

      Hello.

      I'm farely new to BPEL and WS but I have managed to get the BPEL tutorials up and running.

      I'm using:
      JBoss AS 4.0.5.GA
      JBossWS 1.2.1.GA
      jbpm-bpel 1.1.Beta5

      I have done the HelloWorld process with BPEL Designer 0.2.0.

      The files I've made are (otherwise the code is from the original tutorial):

      HELLO.BPEL:

      <?xml version="1.0" encoding="UTF-8" standalone="no"?>
      <bpws:process xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:tns="http://jbpm.org/examples/hello" exitOnStandardFault="yes" name="HelloWorld" suppressJoinFailure="yes" targetNamespace="http://jbpm.org/examples/hello">
       <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" location="hello.wsdl" namespace="http://jbpm.org/examples/hello"/>
       <bpws:partnerLinks>
       <bpws:partnerLink myRole="Greeter" name="caller" partnerLinkType="tns:Caller-Greeter"/>
       </bpws:partnerLinks>
       <bpws:variables>
       <bpws:variable messageType="tns:nameMessage" name="request"/>
       <bpws:variable messageType="tns:greetingMessage" name="response"/>
       </bpws:variables>
       <bpws:sequence>
       <bpws:receive name="Receive" operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="request"/>
       <bpws:assign name="Assign" validate="no">
       <bpws:copy>
       <bpws:from><![CDATA[concat('Hello, ', bpws:getVariableData('request', 'name'), '!')]]></bpws:from>
       <bpws:to part="greeting" variable="response"/>
       </bpws:copy>
       </bpws:assign>
       <bpws:reply name="Reply" operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="response"/>
       </bpws:sequence>
      </bpws:process>


      HELLO.WSDL:
      <?xml version="1.0" encoding="UTF-8" standalone="no"?>
      <wsdl:definitions xmlns:tns="http://jbpm.org/examples/hello" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="hello" targetNamespace="http://jbpm.org/examples/hello" xmlns:p="http://schemas.xmlsoap.org/ws/2004/03/partner-link/">
       <wsdl:message name="nameMessage">
       <wsdl:part name="name" type="xsd:string"></wsdl:part>
       </wsdl:message>
       <wsdl:message name="greetingMessage">
       <wsdl:part name="greeting" type="xsd:string"></wsdl:part>
       </wsdl:message>
       <wsdl:portType name="Greeter">
       <wsdl:operation name="sayHello">
       <wsdl:input message="tns:nameMessage"></wsdl:input>
       <wsdl:output message="tns:greetingMessage"></wsdl:output>
       </wsdl:operation>
       </wsdl:portType>
       <p:partnerLinkType name="Caller-Greeter">
       <p:role portType="tns:Greeter" name="Greeter"></p:role>
       </p:partnerLinkType>
      </wsdl:definitions>


      Could the problem be in the code above? The war-file deploys nicely but the junit test just freezes. The ws is called but it doesn't send a response.

      Thanks for the help.



        • 1. Re: BPEL process doesn't respond
          Sami Rintala Newbie

          Hello again.

          I noticed that I had forgotten to add the createInstance attribute to the receive.

          The server sayes the following when I execute the redeploy command:

          12:07:47,143 INFO [[/jbpm-bpel]] processDeployServlet: deploying process definition: file=file:/C:/jboss/jbpm-bpel-1.1.Beta3/examples/Omahello/target/hello-process.zip
          12:07:47,611 INFO [BpelReader] read wsdl document: hello.wsdl
          12:07:47,627 INFO [BpelReader] read wsdl document: hello.wsdl
          12:07:47,658 INFO [BpelReader] read bpel document: hello.bpel
          12:07:47,815 INFO [[/jbpm-bpel]] processDeployServlet: deployed process definition: HelloWorld
          12:08:00,674 INFO [TomcatDeployer] deploy, ctxPath=/hello, warUrl=.../tmp/deploy/tmp38050hello-exp.war/
          12:08:00,940 WARN [ProxyWarnLog] Narrowing proxy to class org.jbpm.bpel.graph.def.CompositeActivity - this operation breaks ==
          12:08:01,018 WARN [ProxyWarnLog] Narrowing proxy to class org.jbpm.bpel.integration.def.ReceiveAction - this operation breaks ==
          12:08:01,174 INFO [IntegrationConfigurator] Message reception enabled for process: HelloWorld
          12:08:01,330 INFO [WSDLFilePublisher] WSDL published to: file:/C:/jboss/jboss-4.0.5.GA/server/default/data/wsdl/hello.war/hello-service.wsdl
          12:08:01,409 WARN [ProxyWarnLog] Narrowing proxy to class org.jbpm.bpel.graph.def.CompositeActivity - this operation breaks ==
          12:08:01,440 ERROR [StartListener] could not start process instance
          org.jbpm.bpel.BpelException: could not select nodes
           at org.jbpm.bpel.sublang.xpath.XPathExpressionEvaluator.evaluate(XPathExpressionEvaluator.java:86)
           at org.jbpm.bpel.graph.basic.assign.FromExpression.extract(FromExpression.java:36)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:585)
           at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205)
           at org.jbpm.bpel.graph.basic.Assign$From_$$_javassist_112.extract(Assign$From_$$_javassist_112.java)
           at org.jbpm.bpel.graph.basic.Assign$Copy.copyValue(Assign.java:95)
           at org.jbpm.bpel.graph.basic.Assign.execute(Assign.java:54)
           at org.jbpm.bpel.graph.def.Activity.enter(Activity.java:105)
           at org.jbpm.graph.def.Transition.take(Transition.java:151)
           at org.jbpm.graph.def.Node.leave(Node.java:393)
           at org.jbpm.bpel.graph.def.Activity.leave(Activity.java:205)
           at org.jbpm.bpel.graph.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:52)
           at org.jbpm.bpel.graph.basic.Receive.accept(Receive.java:96)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:585)
           at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205)
           at org.jbpm.bpel.graph.basic.Receive_$$_javassist_16.accept(Receive_$$_javassist_16.java)
           at org.jbpm.bpel.graph.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:61)
           at org.jbpm.bpel.graph.struct.Sequence.accept(Sequence.java:103)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:585)
           at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205)
           at org.jbpm.bpel.graph.def.Activity_$$_javassist_159.accept(Activity_$$_javassist_159.java)
           at org.jbpm.bpel.graph.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:46)
           at org.jbpm.bpel.graph.def.BpelProcessDefinition.messageReceived(BpelProcessDefinition.java:149)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:585)
           at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205)
           at org.jbpm.bpel.graph.def.BpelProcessDefinition_$$_javassist_84.messageReceived(BpelProcessDefinition_$$_javassist_84.java)
           at org.jbpm.bpel.integration.jms.StartListener.onMessage(StartListener.java:118)
           at org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:696)
           at java.lang.Thread.run(Thread.java:595)
          Caused by: org.jaxen.UnresolvableException: No Such Function {http://schemas.xmlsoap.org/ws/2004/03/business-process/}:getVariableData
           at org.jaxen.SimpleFunctionContext.getFunction(SimpleFunctionContext.java:127)
           at org.jaxen.ContextSupport.getFunction(ContextSupport.java:239)
           at org.jaxen.Context.getFunction(Context.java:193)
           at org.jaxen.expr.DefaultFunctionCallExpr.evaluate(DefaultFunctionCallExpr.java:168)
           at org.jaxen.expr.DefaultFunctionCallExpr.evaluateParams(DefaultFunctionCallExpr.java:187)
           at org.jaxen.expr.DefaultFunctionCallExpr.evaluate(DefaultFunctionCallExpr.java:171)
           at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:98)
           at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:674)
           at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:213)
           at org.jbpm.bpel.sublang.xpath.XPathExpressionEvaluator.evaluate(XPathExpressionEvaluator.java:72)
           ... 40 more



          • 2. Re: BPEL process doesn't respond
            Meghana Joglekar Novice

            Hi,

            The namespace I use for BPEL in my processes is

            xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
            


            Also why do you have your expression in CDATA? Shouldn't that be in 'from's expression' attribute?

            <assign>
             <copy>
             <from expression="concat('Hello, ',
             bpel:getVariableData('request', 'name'), '!')" />
             <to variable="response" part="greeting" />
             </copy>
             </assign>
            


            ~ Meghana.

            • 3. Re: BPEL process doesn't respond
              Sami Rintala Newbie

              Hi.

              The reason for the namespace is that the Visual Designer uses it. It won't show the graphical presentation of the prosess unless that namespace is used.

              Also the expression is automaticly generated. I have tried it without it but it still doesn't work.

              • 4. Re: BPEL process doesn't respond
                Sami Rintala Newbie

                Sorry for the trouble. This helped to my problem:

                "jBPM BPEL 1.1.Beta3 implements the following sections of the BPEL4WS 1.1 specification dated May 5, 2003."