[jboss-user] [jBPM] - Facing an error while using service task for web service

snowstorm tech do-not-reply at jboss.com
Thu Jan 31 00:09:52 EST 2013


snowstorm tech [https://community.jboss.org/people/snowstormuser] created the discussion

"Facing an error while using service task for web service"

To view the discussion, visit: https://community.jboss.org/message/795331#795331

--------------------------------------------------------------
Hi,

I am facing an error while execuation of the example from this link.

>  https://github.com/mswiderski/jbpm-examples/blob/master/jbpm-ws-sample/ https://github.com/mswiderski/jbpm-examples/blob/master/jbpm-ws-sample/

here i'm provding the *bpmn file*, *java code* and *error*

The web service that i used is:-*
*
> http://schemas.xmlsoap.org/wsdl/" location="http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" namespace="http://ws.cdyne.com/WeatherWS/

And i also used the class which are genrated for the webservice above specified in my project class path.

*bpmn file:-*
*
*
> <?xml version="1.0" encoding="UTF-8"?> 
> <definitions id="Definition"
>              targetNamespace=" http://www.example.org/MinimalExample http://www.example.org/MinimalExample"
>              typeLanguage=" http://www.java.com/javaTypes http://www.java.com/javaTypes"
>              expressionLanguage=" http://www.mvel.org/2.0 http://www.mvel.org/2.0"
>              xmlns=" http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/20100524/MODEL"
>              xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema-instance"
>              xsi:schemaLocation=" http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
>              xmlns:g=" http://www.jboss.org/drools/flow/gpd http://www.jboss.org/drools/flow/gpd"
>              xmlns:bpmndi=" http://www.omg.org/spec/BPMN/20100524/DI http://www.omg.org/spec/BPMN/20100524/DI"
>              xmlns:dc=" http://www.omg.org/spec/DD/20100524/DC http://www.omg.org/spec/DD/20100524/DC"
>              xmlns:di=" http://www.omg.org/spec/DD/20100524/DI http://www.omg.org/spec/DD/20100524/DI"
>              xmlns:tns=" http://www.jboss.org/drools http://www.jboss.org/drools">
> 
>   <import importType=" http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/" location=" http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL" namespace=" http://ws.cdyne.com/WeatherWS/ http://ws.cdyne.com/WeatherWS/"/>
> 
> 
>   <itemDefinition id="_sItem"/>
> 
> 
>   <itemDefinition id="_listItem" structureRef="java.util.Collection"/>
> 
>   <itemDefinition id="_listItemOut" structureRef="java.util.Collection"/>
>   <itemDefinition id="_map" structureRef="java.util.Map"/>
> 
> 
>   <itemDefinition id="_2-2-4-itemItem" />
> 
> 
>   <itemDefinition id="_5-listItem" />
> 
> 
>   <itemDefinition id="_2_multiInstanceItemType" />
> 
>   <itemDefinition id="_2_multiInstanceItemOutType"/>
> 
> 
>   <itemDefinition id="_2-2-4_InMessageType" />
>   <message id="_2-2-4_InMessage" itemRef="_2-2-4_InMessageType" />
>   <interface id="_2-2-4_ServiceInterface" name="" implementationRef="WeatherSoap">
>     <operation id="_2-2-4_ServiceOperation" implementationRef="GetCityWeatherByZIP" name="">
>       <inMessageRef>_2-2-4_InMessage</inMessageRef>
>     </operation>
>   </interface>
> 
> 
>   <process processType="Private" isExecutable="true" id="WeatherWSServiceProcess" name="WeatherWSServiceProcess" tns:packageName="defaultPackage">
> 
> 
>     <!-- process variables -->
>     <property id="list" itemSubjectRef="_listItem"/>
>     <property id="listOut" itemSubjectRef="_listItemOut"/>
>     <property id="mode" itemSubjectRef="_sItem"/>
>     <property id="map" itemSubjectRef="_map"/>
> 
> 
>     <!-- nodes -->
>     <startEvent id="_1" name="StartProcess" >
>     </startEvent>
>      <scriptTask id="_21" name="Prepare input" scriptFormat=" http://www.java.com/java http://www.java.com/java" >
>       <script>
>       System.out.println("Get zip code result is " + map);
>       list =  new java.util.ArrayList(map.values());
>       list.remove("Complete");
>       listOut =  new java.util.ArrayList();
>       kcontext.setVariable("list", list);
>       kcontext.setVariable("listOut", listOut);
>      </script>
>     </scriptTask>
>     <serviceTask id="_2" name="Get weather forecast" operationRef="_2-2-4_ServiceOperation" implementation="##WebService" >
>     <extensionElements>
>         <tns:onEntry-script scriptFormat=" http://www.java.com/java http://www.java.com/java">
>           <script>System.out.println("WS1");</script>
>         </tns:onEntry-script>
>         <tns:onExit-script>
>           <script>System.out.println("WS2");</script>
>         </tns:onExit-script>
>       </extensionElements>
>       <ioSpecification>
>         <dataInput id="_2-2-4_param" name="Parameter" />
>         <dataInput id="DataInput_1" name="mode"/>
> 
>         <dataInput id="_2_listInput" name="list"/>
>         <dataOutput id="_2_listOutOutput" name="listOut"/>
>         <dataOutput id="_2-2-4_result" name="Result" />
>         <inputSet>
>           <dataInputRefs>_2-2-4_param</dataInputRefs>
>           <dataInputRefs>DataInput_1</dataInputRefs>
>         </inputSet>
>         <outputSet>
>           <dataOutputRefs>_2_listOutOutput</dataOutputRefs>
>         </outputSet>
>       </ioSpecification>
>        <dataInputAssociation>
>         <targetRef>_2-2-4_param</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression">#{item}</from>
>           <to xsi:type="tFormalExpression">_2-2-4_param</to>
>         </assignment>
>       </dataInputAssociation>
>       <dataInputAssociation>
>         <sourceRef>mode</sourceRef>
>         <targetRef>DataInput_1</targetRef>
>       </dataInputAssociation>
>       <dataInputAssociation id="DataInputAssociation_1">
>         <sourceRef>list</sourceRef>
>         <targetRef>_2_listInput</targetRef>
>       </dataInputAssociation>
>       <dataOutputAssociation>
>         <sourceRef>_2-2-4_result</sourceRef>
>         <targetRef>itemOut</targetRef>
>       </dataOutputAssociation>
>       <multiInstanceLoopCharacteristics>
>         <loopDataInputRef>_2_input</loopDataInputRef>
>         <loopDataOutputRef>_2_listOutOutput</loopDataOutputRef>
>         <inputDataItem id="item" itemSubjectRef="_2_multiInstanceItemType"/>
>         <outputDataItem id="itemOut" itemSubjectRef="_2_multiInstanceItemOutType"/>
>       </multiInstanceLoopCharacteristics>
>     </serviceTask>
> 
>     <scriptTask id="_3" name="Log result" >
>       <script>System.out.println("Service result " + listOut);</script>
>     </scriptTask>
>     <endEvent id="_4" name="EndProcess" >
>         <terminateEventDefinition/>
>     </endEvent>
>     <userTask id="_5" name="Get zip codes" >
>                     <ioSpecification>
>         <dataInput id="_2_CommentInput" name="Comment" />
>         <dataInput id="_2_SkippableInput" name="Skippable" />
>         <dataInput id="_2_TaskNameInput" name="TaskName" />
>         <dataInput id="_2_GroupIdInput" name="GroupId" />
>         <dataInput id="_2_PriorityInput" name="Priority" />
>         <dataOutput id="_2_ResultOutput" name="Result" />
>         <inputSet>
>           <dataInputRefs>_2_CommentInput</dataInputRefs>
>           <dataInputRefs>_2_SkippableInput</dataInputRefs>
>           <dataInputRefs>_2_TaskNameInput</dataInputRefs>
>           <dataInputRefs>_2_GroupIdInput</dataInputRefs>
>           <dataInputRefs>_2_PriorityInput</dataInputRefs>
>         </inputSet>
>         <outputSet>
>           <dataOutputRefs>_2_ResultOutput</dataOutputRefs>
>         </outputSet>
>       </ioSpecification>
>       <dataInputAssociation>
>         <targetRef>_2_CommentInput</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression"></from>
>           <to xsi:type="tFormalExpression">_2_CommentInput</to>
>         </assignment>
>       </dataInputAssociation>
>       <dataInputAssociation>
>         <targetRef>_2_SkippableInput</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression">false</from>
>           <to xsi:type="tFormalExpression">_2_SkippableInput</to>
>         </assignment>
>       </dataInputAssociation>
>       <dataInputAssociation>
>         <targetRef>_2_TaskNameInput</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression">firstTask</from>
>           <to xsi:type="tFormalExpression">_2_TaskNameInput</to>
>         </assignment>
>       </dataInputAssociation>
>       <dataInputAssociation>
>         <targetRef>_2_GroupIdInput</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression"></from>
>           <to xsi:type="tFormalExpression">_2_GroupIdInput</to>
>         </assignment>
>       </dataInputAssociation>
>       <dataInputAssociation>
>         <targetRef>_2_PriorityInput</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression"></from>
>           <to xsi:type="tFormalExpression">_2_PriorityInput</to>
>         </assignment>
>       </dataInputAssociation>
>       <dataOutputAssociation>
>         <sourceRef>_2_ResultOutput</sourceRef>
>         <targetRef>map</targetRef>
>       </dataOutputAssociation>
>       <potentialOwner>
>         <resourceAssignmentExpression>
>           <formalExpression>john</formalExpression>
>         </resourceAssignmentExpression>
>       </potentialOwner>
>     </userTask>
> 
>     <userTask id="_6" name="Show forecast" >
>       <ioSpecification>
>         <dataInput id="_4_outputInput" name="output" />
>         <dataInput id="_4_CommentInput" name="Comment" />
>         <dataInput id="_4_SkippableInput" name="Skippable" />
>         <dataInput id="_4_TaskNameInput" name="TaskName" />
>         <dataInput id="_4_GroupIdInput" name="GroupId" />
>         <dataInput id="_4_PriorityInput" name="Priority" />
>         <inputSet>
>           <dataInputRefs>_4_outputInput</dataInputRefs>
>           <dataInputRefs>_4_CommentInput</dataInputRefs>
>           <dataInputRefs>_4_SkippableInput</dataInputRefs>
>           <dataInputRefs>_4_TaskNameInput</dataInputRefs>
>           <dataInputRefs>_4_GroupIdInput</dataInputRefs>
>           <dataInputRefs>_4_PriorityInput</dataInputRefs>
>         </inputSet>
>         <outputSet>
>         </outputSet>
>       </ioSpecification>
>       <dataInputAssociation>
>         <sourceRef>listOut</sourceRef>
>         <targetRef>_4_outputInput</targetRef>
>       </dataInputAssociation>
>       <dataInputAssociation>
>         <targetRef>_4_CommentInput</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression"></from>
>           <to xsi:type="tFormalExpression">_4_CommentInput</to>
>         </assignment>
>       </dataInputAssociation>
>       <dataInputAssociation>
>         <targetRef>_4_SkippableInput</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression">false</from>
>           <to xsi:type="tFormalExpression">_4_SkippableInput</to>
>         </assignment>
>       </dataInputAssociation>
>       <dataInputAssociation>
>         <targetRef>_4_TaskNameInput</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression">secondTask</from>
>           <to xsi:type="tFormalExpression">_4_TaskNameInput</to>
>         </assignment>
>       </dataInputAssociation>
>       <dataInputAssociation>
>         <targetRef>_4_GroupIdInput</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression"></from>
>           <to xsi:type="tFormalExpression">_4_GroupIdInput</to>
>         </assignment>
>       </dataInputAssociation>
>       <dataInputAssociation>
>         <targetRef>_4_PriorityInput</targetRef>
>         <assignment>
>           <from xsi:type="tFormalExpression"></from>
>           <to xsi:type="tFormalExpression">_4_PriorityInput</to>
>         </assignment>
>       </dataInputAssociation>
>       <potentialOwner>
>         <resourceAssignmentExpression>
>           <formalExpression>john</formalExpression>
>         </resourceAssignmentExpression>
>       </potentialOwner>
>     </userTask>
> 
> 
>     <!-- connections -->
>     <sequenceFlow id="_21-_2" sourceRef="_21" targetRef="_2" />
>     <sequenceFlow id="_2-_3" sourceRef="_2" targetRef="_3" />
>     <sequenceFlow id="_3-_6" sourceRef="_3" targetRef="_6" />
>     <sequenceFlow id="_1-_5" sourceRef="_1" targetRef="_5" />
>     <sequenceFlow id="_5-_21" sourceRef="_5" targetRef="_21" />
>     <sequenceFlow id="_6-_4" sourceRef="_6" targetRef="_4" />
> 
> 
>   </process>
> 
> 
>   <bpmndi:BPMNDiagram>
>     <bpmndi:BPMNPlane bpmnElement="WeatherWSServiceProcess" >
>       <bpmndi:BPMNShape bpmnElement="_1" >
>         <dc:Bounds x="16" y="67" width="48" height="48" />
>       </bpmndi:BPMNShape>
>       <bpmndi:BPMNShape bpmnElement="_2" >
>         <dc:Bounds x="228" y="16" width="200" height="150" />
>       </bpmndi:BPMNShape>
>       <bpmndi:BPMNShape bpmnElement="_21" >
>         <dc:Bounds x="128" y="26" width="200" height="150" />
>       </bpmndi:BPMNShape>
>       <bpmndi:BPMNShape bpmnElement="_3" >
>         <dc:Bounds x="460" y="67" width="92" height="48" />
>       </bpmndi:BPMNShape>
>       <bpmndi:BPMNShape bpmnElement="_4" >
>         <dc:Bounds x="584" y="67" width="48" height="48" />
>       </bpmndi:BPMNShape>
>       <bpmndi:BPMNShape bpmnElement="_5" >
>         <dc:Bounds x="96" y="67" width="100" height="48" />
>       </bpmndi:BPMNShape>
>       <bpmndi:BPMNShape bpmnElement="_6" >
>         <dc:Bounds x="96" y="67" width="140" height="148" />
>       </bpmndi:BPMNShape>
>       <bpmndi:BPMNEdge bpmnElement="_21-_2" >
>         <di:waypoint x="140" y="50" />
>         <di:waypoint x="144" y="117" />
>       </bpmndi:BPMNEdge>
>       <bpmndi:BPMNEdge bpmnElement="_2-_3" >
>         <di:waypoint x="42" y="49" />
>         <di:waypoint x="140" y="50" />
>       </bpmndi:BPMNEdge>
>       <bpmndi:BPMNEdge bpmnElement="_3-_6" >
>         <di:waypoint x="146" y="91" />
>         <di:waypoint x="328" y="91" />
>       </bpmndi:BPMNEdge>
>       <bpmndi:BPMNEdge bpmnElement="_1-_5" >
>         <di:waypoint x="328" y="91" />
>         <di:waypoint x="506" y="91" />
>       </bpmndi:BPMNEdge>
>       <bpmndi:BPMNEdge bpmnElement="_5-_21" >
>         <di:waypoint x="506" y="91" />
>         <di:waypoint x="608" y="91" />
>       </bpmndi:BPMNEdge>
>       <bpmndi:BPMNEdge bpmnElement="_6-_4" >
>         <di:waypoint x="40" y="91" />
>         <di:waypoint x="146" y="91" />
>       </bpmndi:BPMNEdge>
>     </bpmndi:BPMNPlane>
>   </bpmndi:BPMNDiagram>
> 
> 
> </definitions>

*Java code:-*
*
*
> import java.util.*;
> 
> 
> import javax.xml.ws.Endpoint;
> 
> 
> import org.drools.KnowledgeBase;
> import org.drools.builder.KnowledgeBuilder;
> import org.drools.builder.KnowledgeBuilderFactory;
> import org.drools.builder.ResourceType;
> import org.drools.definition.process.Connection;
> import org.drools.definition.process.Node;
> import org.drools.io.ResourceFactory;
> import org.drools.runtime.StatefulKnowledgeSession;
> import org.drools.runtime.process.NodeInstance;
> import org.drools.runtime.process.WorkItem;
> import org.drools.runtime.process.WorkItemHandler;
> import org.drools.runtime.process.WorkItemManager;
> import org.jbpm.bpmn2.handler.ServiceTaskHandler;
> import org.jbpm.process.instance.ProcessInstance;
> import org.jbpm.process.workitem.wsht.CommandBasedWSHumanTaskHandler;
> import org.jbpm.task.service.TaskClientHandler;
> import org.jbpm.workflow.core.node.HumanTaskNode;
> import org.jbpm.workflow.instance.WorkflowProcessInstance;
> import org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl;
> 
> 
> public class ProcessMain {
> 
>           public static void main(String[] args) throws Exception {
> 
> 
> 
> 
>                         KnowledgeBase kbase = readKnowledgeBase();
>                         StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
>             TestWorkItemHandler htHandler = new TestWorkItemHandler();
>                   ksession.getWorkItemManager().registerWorkItemHandler("Service Task", new ServiceTaskHandler());
>                   ksession.getWorkItemManager().registerWorkItemHandler("Human Task", htHandler);
>                   Map<String, Object> params = new HashMap<String, Object>();
>                   params.put("mode", "async");
>                   WorkflowProcessInstance processInstance = (WorkflowProcessInstance) ksession.startProcess("WeatherWSServiceProcess", params);
>                   params = new HashMap<String, Object>();
>                   params.put("r1", "14025");
>                   HashMap<String, Object> results = new HashMap<String, Object>();
>                   results.put("Result", params);
>                   ksession.getWorkItemManager().completeWorkItem(htHandler.getWorkItem().getId(), results);
>                   Thread.sleep(5000);
>                               ksession.getWorkItemManager().completeWorkItem(htHandler.getWorkItem().getId(), null);
> 
>           }
>            static class TestWorkItemHandler implements WorkItemHandler {
> 
> 
>                               private static TestWorkItemHandler INSTANCE = new TestWorkItemHandler();
> 
> 
>                               private WorkItem workItem;
>                               private WorkItem aborted;
> 
> 
>                               public static TestWorkItemHandler getInstance() {
>                                         return INSTANCE;
>                               }
> 
> 
>                               public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
>                                         this.workItem = workItem;
>                               }
> 
> 
>                               public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
>                                         this.aborted = workItem;
>                               }
> 
> 
>                               public WorkItem getWorkItem() {
>                                         WorkItem result = workItem;
>                                         workItem = null;
>                                         return result;
>                               }
> 
> 
>                               public WorkItem getAbortedWorkItem() {
>                                         WorkItem result = aborted;
>                                         aborted = null;
>                                         return result;
>                               }
> 
> 
>                     }
> }
> 

*Error:-*
*
*
> Get zip code result is {r1=14025}
> 
> java.lang.ClassNotFoundException: 
>
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/795331#795331]

Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20130131/88eff8e5/attachment-0001.html 


More information about the jboss-user mailing list