cancel
Showing results for 
Search instead for 
Did you mean: 

Error deploying BPMN20 containing a Web Service Task

ct1
Champ in-the-making
Champ in-the-making
In Activiti 5.8 Explorer, I am trying to deploy a BPMN20 file that contains a Web Service Task.  I have written a simple Web Service (very much like the one described in Activiti In Action, chapters 7 and 11).  I can call the Web Service from a Java client successfully.  I have tried to create a BPMN20 process that calls the same Web Service.  When I try to deploy the BPMN20 process via Explorer, I get the error shown below.

The jaxb-api-2.2.1.jar, which contains the javax.xml.bind.JAXBElement.class, is in the C:\Activiti\activiti-5.8\apps\apache-tomcat-6.0.32\webapps\activiti-explorer\WEB-INF\lib directory.  I ran "ant demo.start" from the C:\Activiti\activiti-5.8\setup directory.

After the attempt to deploy the process, Explorer shows both the .png and the .bpmn20.xml files, but there is no Process Definition listed on the Deployments page.

If you have time, please take a look, then let me know where my problem is and how I might correct it.

The exception received when I try to deploy the BPMN20 file:


INFO: Processing resource CheckPrevEmploymentProcess.bpmn20.xml
Jan 17, 2012 1:58:12 PM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes
INFO: XMLSchema currently not supported as typeLanguage
Jan 17, 2012 1:58:12 PM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes
INFO: XPath currently not supported as expressionLanguage
Jan 17, 2012 1:58:12 PM org.activiti.engine.impl.bpmn.parser.BpmnParse execute
SEVERE: Uknown exception
org.activiti.engine.ActivitiClassLoadingException: Class not found: javax.xml.bind.JAXBElement<java.
lang.String>       
        at org.activiti.engine.impl.util.ReflectUtil.loadClass(ReflectUtil.java:81)
        at org.activiti.engine.impl.webservice.CxfWSDLImporter.importStructure(CxfWSDLImporter.java:
159)
        at org.activiti.engine.impl.webservice.CxfWSDLImporter.importTypes(CxfWSDLImporter.java:146)

        at org.activiti.engine.impl.webservice.CxfWSDLImporter.importFrom(CxfWSDLImporter.java:106)
        at org.activiti.engine.impl.webservice.CxfWSDLImporter.importFrom(CxfWSDLImporter.java:69)
        at org.activiti.engine.impl.bpmn.parser.BpmnParse.parseImports(BpmnParse.java:283)
        at org.activiti.engine.impl.bpmn.parser.BpmnParse.parseRootElement(BpmnParse.java:213)
        at org.activiti.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:192)
        at org.activiti.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:81)
        at org.activiti.engine.impl.persistence.deploy.DeploymentCache.deploy(DeploymentCache.java:3
7)
        at org.activiti.engine.impl.persistence.entity.DeploymentManager.insertDeployment(Deployment
Manager.java:39)
        at org.activiti.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:58)
        at org.activiti.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:30)
        at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java
:24)
        at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInte
rceptor.java:42)
        at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInter
ceptor.java:42)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.j
ava:130)
        at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.jav
a:40)
        at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
        at org.activiti.engine.impl.RepositoryServiceImpl.deploy(RepositoryServiceImpl.java:43)
        at org.activiti.engine.impl.repository.DeploymentBuilderImpl.deploy(DeploymentBuilderImpl.ja
va:106)
        at org.activiti.explorer.ui.management.deployment.DeploymentUploadReceiver.deployUploadedFil
e(DeploymentUploadReceiver.java:88)
        at org.activiti.explorer.ui.management.deployment.DeploymentUploadReceiver.uploadFinished(De
ploymentUploadReceiver.java:71)
        at org.activiti.explorer.ui.custom.UploadComponent.uploadFinished(UploadComponent.java:173)
        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:597)
        at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:490)
        at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164)
        at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1193)
        at com.vaadin.ui.Upload.fireUploadSuccess(Upload.java:744)
        at com.vaadin.ui.Upload$1.streamingFinished(Upload.java:1022)
        at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.streamToReceiver(AbstractComm
unicationManager.java:593)
        at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleSimpleMultipartFileUp
load(AbstractCommunicationManager.java:469)
        at com.vaadin.terminal.gwt.server.CommunicationManager.handleFileUpload(CommunicationManager
.java:257)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServ
let.java:495)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.ja
va:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBElement<java.lang.String>
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at org.activiti.engine.impl.util.ReflectUtil.loadClass(ReflectUtil.java:62)
        … 49 more

The BPMN20 file I am trying to deploy is:


<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:activiti="http://activiti.org/bpmn"
   xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
   xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC"
   xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI"
   targetNamespace="http://www.activiti.org/test"
   xmlns:here="http://argo.com"
   >
   
   <import importType="http://schemas.xmlsoap.org/wsdl/"
         location="http://localhost:9090/PrevEmploymentCheckService/services/PreviousEmployment?wsdl"
         namespace="http://argo.com" />
   
   <message id="locatePrevEmplymntInfoMessage"
         itemRef="here:itemDefRef1" />
   <message id="locatePrevEmplymntInfoResponseMessage"
         itemRef="here:itemDefRef2" />
         
   <itemDefinition id="itemDefRef1"
         structureRef="here:CheckPreviousEmployment" />
   <itemDefinition id="itemDefRef2"
         structureRef="here:CheckPreviousEmploymentResponse" />

   <interface name ="Find Previous Employment Info"
      implementationRef="here:PreviousEmploymentPortType" >
      <operation id="findPrevEmploymentInfoOperation"
            name="Find Previous Employment Info Operation"
            implementationRef="here:CheckPreviousEmployment">
         <inMessageRef>
            here:locatePrevEmplymntInfoMessage   
         </inMessageRef>
         <outMessageRef>
            here:locatePrevEmplymntInfoResponseMessage
         </outMessageRef>
      </operation>
   </interface>
   
   <itemDefinition id="candidateName" structureRef="string" />
   <itemDefinition id="applicantName" structureRef="string" />
   <itemDefinition id="return" structureRef="string" />   
   <itemDefinition id="prevEmplInfo" structureRef="string" />
   
   <process id="CheckPrevEmploymentProcess" name="CheckPrevEmploymentProcess">
      <documentation>This is a callable process used to check for previous
         employment of the applicant at our company.</documentation>
      <startEvent id="checkPrevEmplymntStart" name="Check Previous Employment Start">
         <extensionElements>
            <activiti:formProperty id="candidateName"
               name="Name of Candidate"
               type="string"
               required="true"
               readable="true" writable="true"></activiti:formProperty>
         </extensionElements>
      </startEvent>
      
      <scriptTask id="logStart" name="Log Process Start"
         scriptFormat="groovy">
      <script><![CDATA[print "CheckPrevEmploymentProcess started with candidate name ${candidateName}.\n"]]></script>
      </scriptTask>
      <serviceTask id="callPrevEmplWebService" name="Call Prev Employment Web Service"
         implementation="##WebService"
         operationRef="here:findPrevEmploymentInfoOperation">
         
         <ioSpecification>
            <dataInput itemSubjectRef="here:itemDefRef1"
                     id="dataInput" />
            <dataOutput
                     itemSubjectRef="here:itemDefRef2"
                     id="dataOutput" />
                     
            <inputSet>
               <dataInputRefs>dataInput</dataInputRefs>
            </inputSet>
            <outputSet>
               <dataOutputRefs>dataOutput</dataOutputRefs>
            </outputSet>
         </ioSpecification>
         
         <dataInputAssociation>
            <sourceRef>candidateName</sourceRef>
            <targetRef>applicantName</targetRef>
         </dataInputAssociation>
         <dataOutputAssociation>
            <sourceRef>return</sourceRef>
            <targetRef>prevEmplInfo</targetRef>
         </dataOutputAssociation>      
      </serviceTask>
      
      <sequenceFlow id="flow2" name="" sourceRef="callPrevEmplWebService"
         targetRef="logAfterWebSvcCall"></sequenceFlow>
      <scriptTask id="logAfterWebSvcCall" name="Log Prev Emplymnt Info"
         scriptFormat="groovy">
         <script><![CDATA[print "After Call Prev Employment Web Service task,
                     candidateName is ${candidateName}.\n
                     And prevEmplInfo is ${prevEmplInfo}.\n"]]></script>
      </scriptTask>
      <endEvent id="checkPrevEmplymntEnd" name="Check Prev Emplymnt End"></endEvent>
      <sequenceFlow id="flow3" name="" sourceRef="logAfterWebSvcCall"
         targetRef="checkPrevEmplymntEnd"></sequenceFlow>
      <sequenceFlow id="flow4" name="" sourceRef="checkPrevEmplymntStart"
         targetRef="logStart"></sequenceFlow>
      <sequenceFlow id="flow5" name="" sourceRef="logStart"
         targetRef="callPrevEmplWebService"></sequenceFlow>
   </process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_CheckPrevEmploymentProcess">
      <bpmndi:BPMNPlane bpmnElement="CheckPrevEmploymentProcess"
         id="BPMNPlane_CheckPrevEmploymentProcess">
         <bpmndi:BPMNShape bpmnElement="checkPrevEmplymntStart"
            id="BPMNShape_checkPrevEmplymntStart">
            <omgdc:Bounds height="35" width="35" x="90" y="98"></omgdc:Bounds>
         </bpmndi:BPMNShape>
         <bpmndi:BPMNShape bpmnElement="callPrevEmplWebService"
            id="BPMNShape_callPrevEmplWebService">
            <omgdc:Bounds height="91" width="105" x="330" y="70"></omgdc:Bounds>
         </bpmndi:BPMNShape>
         <bpmndi:BPMNShape bpmnElement="logAfterWebSvcCall"
            id="BPMNShape_logAfterWebSvcCall">
            <omgdc:Bounds height="55" width="105" x="490" y="88"></omgdc:Bounds>
         </bpmndi:BPMNShape>
         <bpmndi:BPMNShape bpmnElement="checkPrevEmplymntEnd"
            id="BPMNShape_checkPrevEmplymntEnd">
            <omgdc:Bounds height="35" width="35" x="650" y="98"></omgdc:Bounds>
         </bpmndi:BPMNShape>
         <bpmndi:BPMNShape bpmnElement="logStart" id="BPMNShape_logStart">
            <omgdc:Bounds height="55" width="105" x="170" y="88"></omgdc:Bounds>
         </bpmndi:BPMNShape>
         <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
            <omgdi:waypoint x="435" y="115"></omgdi:waypoint>
            <omgdi:waypoint x="490" y="115"></omgdi:waypoint>
         </bpmndi:BPMNEdge>
         <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
            <omgdi:waypoint x="595" y="115"></omgdi:waypoint>
            <omgdi:waypoint x="650" y="115"></omgdi:waypoint>
         </bpmndi:BPMNEdge>
         <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
            <omgdi:waypoint x="125" y="115"></omgdi:waypoint>
            <omgdi:waypoint x="170" y="115"></omgdi:waypoint>
         </bpmndi:BPMNEdge>
         <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
            <omgdi:waypoint x="275" y="115"></omgdi:waypoint>
            <omgdi:waypoint x="330" y="115"></omgdi:waypoint>
         </bpmndi:BPMNEdge>
      </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
</definitions>

The WSDL of the Web Service I am trying to call is:


  <?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
   xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://argo.com"
   xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
   xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
   targetNamespace="http://argo.com">
   <wsdl:documentation>Please Type your service description here
   </wsdl:documentation>
   <wsdl:types>
      <xs:schema attributeFormDefault="qualified"
         elementFormDefault="qualified" targetNamespace="http://argo.com">
         <xs:element name="CheckPreviousEmployment">
            <xs:complexType>
               <xs:sequence>
                  <xs:element minOccurs="0" name="applicantName"
                     nillable="true" type="xs:string" />
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="CheckPreviousEmploymentResponse">
            <xs:complexType>
               <xs:sequence>
                  <xs:element minOccurs="0" name="return" nillable="true"
                     type="xs:string" />
               </xs:sequence>
            </xs:complexType>
         </xs:element>
      </xs:schema>
   </wsdl:types>
   <wsdl:message name="CheckPreviousEmploymentRequest">
      <wsdl:part name="parameters" element="ns:CheckPreviousEmployment" />
   </wsdl:message>
   <wsdl:message name="CheckPreviousEmploymentResponse">
      <wsdl:part name="parameters" element="ns:CheckPreviousEmploymentResponse" />
   </wsdl:message>
   <wsdl:portType name="PreviousEmploymentPortType">
      <wsdl:operation name="CheckPreviousEmployment">
         <wsdl:input message="ns:CheckPreviousEmploymentRequest"
            wsaw:Action="urn:CheckPreviousEmployment" />
         <wsdl:output message="ns:CheckPreviousEmploymentResponse"
            wsaw:Action="urn:CheckPreviousEmploymentResponse" />
      </wsdl:operation>
   </wsdl:portType>
   <wsdl:binding name="PreviousEmploymentSoap11Binding" type="ns:PreviousEmploymentPortType">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
         style="document" />
      <wsdl:operation name="CheckPreviousEmployment">
         <soap:operation soapAction="urn:CheckPreviousEmployment"
            style="document" />
         <wsdl:input>
            <soap:body use="literal" />
         </wsdl:input>
         <wsdl:output>
            <soap:body use="literal" />
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>
   <wsdl:binding name="PreviousEmploymentSoap12Binding" type="ns:PreviousEmploymentPortType">
      <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
         style="document" />
      <wsdl:operation name="CheckPreviousEmployment">
         <soap12:operation soapAction="urn:CheckPreviousEmployment"
            style="document" />
         <wsdl:input>
            <soap12:body use="literal" />
         </wsdl:input>
         <wsdl:output>
            <soap12:body use="literal" />
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>
   <wsdl:binding name="PreviousEmploymentHttpBinding" type="ns:PreviousEmploymentPortType">
      <http:binding verb="POST" />
      <wsdl:operation name="CheckPreviousEmployment">
         <http:operation location="CheckPreviousEmployment" />
         <wsdl:input>
            <mime:content type="text/xml" part="parameters" />
         </wsdl:input>
         <wsdl:output>
            <mime:content type="text/xml" part="parameters" />
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>
   <wsdl:service name="PreviousEmployment">
      <wsdl:port name="PreviousEmploymentHttpSoap11Endpoint"
         binding="ns:PreviousEmploymentSoap11Binding">
         <soap:address
            location="http://localhost:9090/PrevEmploymentCheckService/services/PreviousEmployment.PreviousEmploymentHttpS..." />
      </wsdl:port>
      <wsdl:port name="PreviousEmploymentHttpSoap12Endpoint"
         binding="ns:PreviousEmploymentSoap12Binding">
         <soap12:address
            location="http://localhost:9090/PrevEmploymentCheckService/services/PreviousEmployment.PreviousEmploymentHttpS..." />
      </wsdl:port>
      <wsdl:port name="PreviousEmploymentHttpEndpoint" binding="ns:PreviousEmploymentHttpBinding">
         <http:address
            location="http://localhost:9090/PrevEmploymentCheckService/services/PreviousEmployment.PreviousEmploymentHttpE..." />
      </wsdl:port>
   </wsdl:service>
</wsdl:definitions>

The Java client that can access the Web Service is"

package com.argo;

import java.rmi.RemoteException;

public class PrevEmploymentCheckClient2
{
   public static void main(String[] args)
   {
      try
      {
         PreviousEmploymentStub theStub = new PreviousEmploymentStub();
         CheckPreviousEmployment cpe = new CheckPreviousEmployment();
         
         cpe.setApplicantName("BarryBlack-From Client2");
         
         String emplymntHistory = new String();
         
         CheckPreviousEmploymentResponse theResp =
                        theStub.checkPreviousEmployment(cpe);
         
         emplymntHistory = theResp.get_return();
         
         System.out.println("PrevEmploymentCheckClient2.main() found "
                     + "emplymntHistory = \""
                     + emplymntHistory
                     + "\".");
      
      }
      catch(AxisFault af)
      {
         af.printStackTrace();
      }
      catch(RemoteException re)
      {
         re.printStackTrace();
      }
   }

}

19 REPLIES 19

ct1
Champ in-the-making
Champ in-the-making
You are correct, I did use Axis2 to create the Web Service. 

I was under the impression that it did not matter what tools were used to create a Service as long as it produced WSDL that accruately described it; and, if it did, clients written with any tool could call that Service.  Am I mistaken?  (After all, as you probably guessed, this is my first exposure to Web Services and my understanding may be quite naïve.) 

Another question.  Is Activiti Explorer trying to somehow call the Web Service at the time of deployment?  This exception is happening when I try to deploy the BPMN20 file using Explorer (or using a test case to deploy).

I will try to recreate the Web Service using only CXF and will let you know the results. 

If recreating the Web Service using only CXF gets me around the problem, will that mean that I will only be able to call from Activiti only those Web Services that were created using only CXF?  

Thank you again for any suggestions you might make.

atifelkhachine
Champ in-the-making
Champ in-the-making
Hi,

I was under the impression that it did not matter what tools were used to create a Service as long as it produced WSDL that accruately described it; and, if it did, clients written with any tool could call that Service. Am I mistaken? (After all, as you probably guessed, this is my first exposure to Web Services and my understanding may be quite naïve.)

You are right. WSDL is a standard and it should work on what ever implementation that respects the specifications.
It might be a bug in the Activiti implementation using JAXB to do the XML mapping.
Making the same web service using CXF and not Axis was only a suggestion so that we can move forward in our analyses.
Between, i have never worked with Axis and i have never seen this JAXBElement exception … Smiley Happy
Another question. Is Activiti Explorer trying to somehow call the Web Service at the time of deployment? This exception is happening when I try to deploy the BPMN20 file using Explorer (or using a test case to deploy).

I think that it is not trying to call the web service, but it is only trying to do the XML mapping from the wsdl … If only an Activiti cxf developer may confirm my supposition ..

If recreating the Web Service using only CXF gets me around the problem, will that mean that I will only be able to call from Activiti only those Web Services that were created using only CXF?

Well, you should be able to call your web service without any problem (if it is the same SOAP version (1.1 /1.2 … ) and is JSR compliant …)

For example : Axis 1.0 is not compatible with 'JSR 222 Java Architecture for XML Binding (JAXB) 2.0'


Best Regards,
Atif

ct1
Champ in-the-making
Champ in-the-making
Thank you for the explanations.  So often, when working with advanced developers like you, they will not take the time to really help, but will be rather curt in their remarks and will leave novices in the undertow of the waves of recent technologies.  You have proven to be much better than that.

I will continue trying to recreate the Web Service with CXF only and will let you know the results.

ct1
Champ in-the-making
Champ in-the-making
I am sorry it took me several days to learn enough about CXF to use it to rebuild my web service.  Thank you for your patience.

I managed to have Eclipse create the Web Service using cxf.  Then deploy the modified BPMN20.xml file that contained the Web Service Task.

I am, however, not able to start the Web Service Task.  I start the process in Explorer, put data in the Start Task form, and then see the exception shown below.  Would you please be able to look at my WSDL and BPMN20 files (shown below) to see what I have done wrong?

Before trying to invoke the web service via Activiti, I had Eclipse generate a client that calls the web service successfully.  I moved the client to another PC in our network and it still called the web service (running on my desktop) successfully.  I do not know if it will help, but I put a copy of the client generated by Eclipse below as well.  I also included a copy of the Java class I used to have Eclipse create the web service.

BPMN20.xml file:


<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:activiti="http://activiti.org/bpmn"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlnsSmiley Surprisedmgdc="http://www.omg.org/spec/DD/20100524/DC"
xmlnsSmiley Surprisedmgdi="http://www.omg.org/spec/DD/20100524/DI"
targetNamespace="http://prevemplsvc.argo.com"
xmlns:here="http://prevemplsvc.argo.com"
>
     <!–  xmlns:here="http://argo.com" –>
    
<import importType="http://schemas.xmlsoap.org/wsdl/"
   location="http://lusr1315:9696/PrevEmployCheckWS/services/PreviousEmploymentPort?wsdl"
   namespace="http://prevemplsvc.argo.com" />

<message id="locatePrevEmplymntInfoMessage"
   itemRef="here:CheckPreviousEmploymentItem" />
<message id="locatePrevEmplymntInfoResponseMessage"
   itemRef="here:CheckPreviousEmploymentResponseItem" />
  
<itemDefinition id="CheckPreviousEmploymentItem"
   structureRef="here:CheckPreviousEmployment" />
<itemDefinition id="CheckPreviousEmploymentResponseItem"
   structureRef="here:CheckPreviousEmploymentResponse" />

<interface name ="Find Previous Employment Info"
  implementationRef="hereSmiley TonguereviousEmploymentSIE" >
  <operation id="findPrevEmploymentInfoOperation"
    name="Find Previous Employment Info Operation"
    implementationRef="here:CheckPreviousEmployment" >
   <inMessageRef>
    here:locatePrevEmplymntInfoMessage
   </inMessageRef>
   <outMessageRef>
    here:locatePrevEmplymntInfoResponseMessage
   </outMessageRef>
  </operation>
</interface>

  <itemDefinition id="candidateName" structureRef="string" />
<itemDefinition id="arg0" structureRef="string" />
<itemDefinition id="return" structureRef="string" />
<itemDefinition id="prevEmplInfo" structureRef="string" />

<process id="CheckPrevEmploymentProcess" name="CheckPrevEmploymentProcess">
  <documentation>This is a callable process used to check for previous
   employment of the applicant at our company.</documentation>
  <startEvent id="checkPrevEmplymntStart" name="Check Previous Employment Start">
   <extensionElements>
    <activiti:formProperty id="candidateName"
     name="Name of Candidate"
     type="string"
     required="true"
     readable="true" writable="true"></activiti:formProperty>
   </extensionElements>
  </startEvent>
 
  <scriptTask id="logStart" name="Log Process Start"
   scriptFormat="groovy">
  <script><![CDATA[print "CheckPrevEmploymentProcess started with candidate name ${candidateName}.\n"]]></script>
  </scriptTask>
  <serviceTask id="callPrevEmplWebService" name="Call Prev Employment Web Service"
   implementation="##WebService"
   operationRef="here:findPrevEmploymentInfoOperation">
        
   <ioSpecification>
    <dataInput itemSubjectRef="here:CheckPreviousEmploymentItem"
       id="dataInput" />
    <dataOutput
       itemSubjectRef="here:CheckPreviousEmploymentResponseItem"
       id="dataOutput" />
      
    <inputSet>
     <dataInputRefs>dataInput</dataInputRefs>
    </inputSet>
    <outputSet>
     <dataOutputRefs>dataOutput</dataOutputRefs>
    </outputSet>
   </ioSpecification>
  
   <dataInputAssociation>
    <sourceRef>candidateName</sourceRef>
    <targetRef>arg0</targetRef>
   </dataInputAssociation>
   <dataOutputAssociation>
    <sourceRef>return</sourceRef>
    <targetRef>prevEmplInfo</targetRef>
   </dataOutputAssociation> 
  </serviceTask>
 
  <sequenceFlow id="flow2" name="" sourceRef="callPrevEmplWebService"
   targetRef="logAfterWebSvcCall"></sequenceFlow>
  <scriptTask id="logAfterWebSvcCall" name="Log Prev Emplymnt Info"
   scriptFormat="groovy">
   <script><![CDATA[print "After Call Prev Employment Web Service task,
       candidateName is ${candidateName}.\n
       And prevEmplInfo is ${prevEmplInfo}.\n"]]></script>
  </scriptTask>
  <endEvent id="checkPrevEmplymntEnd" name="Check Prev Emplymnt End"></endEvent>
  <sequenceFlow id="flow3" name="" sourceRef="logAfterWebSvcCall"
   targetRef="checkPrevEmplymntEnd"></sequenceFlow>
  <sequenceFlow id="flow4" name="" sourceRef="checkPrevEmplymntStart"
   targetRef="logStart"></sequenceFlow>
  <sequenceFlow id="flow5" name="" sourceRef="logStart"
   targetRef="callPrevEmplWebService"></sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_CheckPrevEmploymentProcess">
  <bpmndi:BPMNPlane bpmnElement="CheckPrevEmploymentProcess"
   id="BPMNPlane_CheckPrevEmploymentProcess">
   <bpmndi:BPMNShape bpmnElement="checkPrevEmplymntStart"
    id="BPMNShape_checkPrevEmplymntStart">
    <omgdc:Bounds height="35" width="35" x="90" y="98"></omgdc:Bounds>
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape bpmnElement="callPrevEmplWebService"
    id="BPMNShape_callPrevEmplWebService">
    <omgdc:Bounds height="91" width="105" x="330" y="70"></omgdc:Bounds>
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape bpmnElement="logAfterWebSvcCall"
    id="BPMNShape_logAfterWebSvcCall">
    <omgdc:Bounds height="55" width="105" x="490" y="88"></omgdc:Bounds>
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape bpmnElement="checkPrevEmplymntEnd"
    id="BPMNShape_checkPrevEmplymntEnd">
    <omgdc:Bounds height="35" width="35" x="650" y="98"></omgdc:Bounds>
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape bpmnElement="logStart" id="BPMNShape_logStart">
    <omgdc:Bounds height="55" width="105" x="170" y="88"></omgdc:Bounds>
   </bpmndi:BPMNShape>
   <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
    <omgdi:waypoint x="435" y="115"></omgdi:waypoint>
    <omgdi:waypoint x="490" y="115"></omgdi:waypoint>
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
    <omgdi:waypoint x="595" y="115"></omgdi:waypoint>
    <omgdi:waypoint x="650" y="115"></omgdi:waypoint>
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
    <omgdi:waypoint x="125" y="115"></omgdi:waypoint>
    <omgdi:waypoint x="170" y="115"></omgdi:waypoint>
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
    <omgdi:waypoint x="275" y="115"></omgdi:waypoint>
    <omgdi:waypoint x="330" y="115"></omgdi:waypoint>
   </bpmndi:BPMNEdge>
  </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>


WSDL:


  <?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions name="PreviousEmploymentService" targetNamespace="http://prevemplsvc.argo.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://prevemplsvc.argo.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://prevemplsvc.argo.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <import namespace="http://prevemplsvc.argo.com/" schemaLocation="http://lusr1315:9696/PrevEmployCheckWS/services/PreviousEmploymentPort?xsd=previousemployment_schema..." />
  </schema>
  </wsdl:types>
- <wsdl:message name="CheckPreviousEmploymentResponse">
  <wsdlSmiley Tongueart element="tns:CheckPreviousEmploymentResponse" name="parameters" />
  </wsdl:message>
- <wsdl:message name="CheckPreviousEmployment">
  <wsdlSmiley Tongueart element="tns:CheckPreviousEmployment" name="parameters" />
  </wsdl:message>
- <wsdlSmiley TongueortType name="PreviousEmploymentSIE">
- <wsdlSmiley Surprisedperation name="CheckPreviousEmployment">
  <wsdl:input message="tns:CheckPreviousEmployment" name="CheckPreviousEmployment" />
  <wsdlSmiley Surprisedutput message="tns:CheckPreviousEmploymentResponse" name="CheckPreviousEmploymentResponse" />
  </wsdlSmiley Surprisedperation>
  </wsdlSmiley TongueortType>
- <wsdl:binding name="PreviousEmploymentServiceSoapBinding" type="tnsSmiley TonguereviousEmploymentSIE">
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdlSmiley Surprisedperation name="CheckPreviousEmployment">
  <soapSmiley Surprisedperation soapAction="" style="document" />
- <wsdl:input name="CheckPreviousEmployment">
  <soap:body use="literal" />
  </wsdl:input>
- <wsdlSmiley Surprisedutput name="CheckPreviousEmploymentResponse">
  <soap:body use="literal" />
  </wsdlSmiley Surprisedutput>
  </wsdlSmiley Surprisedperation>
  </wsdl:binding>
- <wsdl:service name="PreviousEmploymentService">
- <wsdlSmiley Tongueort binding="tnsSmiley TonguereviousEmploymentServiceSoapBinding" name="PreviousEmploymentPort">
  <soap:address location="http://lusr1315:9696/PrevEmployCheckWS/services/PreviousEmploymentPort" />
  </wsdlSmiley Tongueort>
  </wsdl:service>
  </wsdl:definitions>

Exception thrown when trying to run the Web Service Task within the BPMN20 file:

Jan 26, 2012 3:21:23 PM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy
INFO: Processing resource CheckPrevEmploymentProcess.bpmn20.xml
Jan 26, 2012 3:21:23 PM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes
INFO: XMLSchema currently not supported as typeLanguage
Jan 26, 2012 3:21:23 PM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes
INFO: XPath currently not supported as expressionLanguage
Jan 26, 2012 3:21:23 PM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy
INFO: Processing resource ResumeScreeningProcess.png
Jan 26, 2012 3:21:23 PM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy
INFO: Processing resource Application Screening Process.png
CheckPrevEmploymentProcess started with candidate name JohnJones.
Jan 26, 2012 3:30:07 PM org.activiti.engine.impl.webservice.WSOperation safeSend
WARNING: Error calling WS http://prevemplsvc.argo.comSmiley TonguereviousEmploymentService
java.lang.reflect.UndeclaredThrowableException
        at $Proxy33.bind(Unknown Source)
        at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.ja
va:286)
        at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.ja
va:206)
        at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.ja
va:199)
        at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.ja
va:154)
        at org.activiti.engine.impl.webservice.CxfWebServiceClient.<init>(CxfWebServiceClient.java:3
0)
        at org.activiti.engine.impl.webservice.CxfWebServiceClientFactory.create(CxfWebServiceClient
Factory.java:27)
        at org.activiti.engine.impl.webservice.WSService.getClient(WSService.java:62)
        at org.activiti.engine.impl.webservice.WSOperation.safeSend(WSOperation.java:75)
        at org.activiti.engine.impl.webservice.WSOperation.sendFor(WSOperation.java:63)
        at org.activiti.engine.impl.bpmn.webservice.Operation.sendMessage(Operation.java:50)
        at org.activiti.engine.impl.bpmn.behavior.WebServiceActivityBehavior.execute(WebServiceActiv
ityBehavior.java:76)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperati
onActivityExecute.java:44)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerStart.eventNo
tificationsCompleted(AtomicOperationTransitionNotifyListenerStart.java:52)
        at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt
omicOperation.java:56)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt
omicOperation.java:49)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionCreateScope.execute(AtomicO
perationTransitionCreateScope.java:49)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake.execute(
AtomicOperationTransitionNotifyListenerTake.java:65)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionDestroyScope.execute(Atomic
OperationTransitionDestroyScope.java:115)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerEnd.eventNoti
ficationsCompleted(AtomicOperationTransitionNotifyListenerEnd.java:36)
        at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt
omicOperation.java:56)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt
omicOperation.java:49)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.take(ExecutionEntity.java:332
)
        at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performOutgoingBehavior(BpmnA
ctivityBehavior.java:102)
        at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performDefaultOutgoingBehavio
r(BpmnActivityBehavior.java:51)
        at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.leave(FlowNodeActivityBeh
avior.java:44)
        at org.activiti.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior.leave(AbstractBpmnAct
ivityBehavior.java:37)
        at org.activiti.engine.impl.bpmn.behavior.ScriptTaskActivityBehavior.execute(ScriptTaskActiv
ityBehavior.java:49)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperati
onActivityExecute.java:44)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerStart.eventNo
tificationsCompleted(AtomicOperationTransitionNotifyListenerStart.java:52)
        at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt
omicOperation.java:56)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt
omicOperation.java:49)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionCreateScope.execute(AtomicO
perationTransitionCreateScope.java:49)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake.execute(
AtomicOperationTransitionNotifyListenerTake.java:65)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionDestroyScope.execute(Atomic
OperationTransitionDestroyScope.java:115)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerEnd.eventNoti
ficationsCompleted(AtomicOperationTransitionNotifyListenerEnd.java:36)
        at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt
omicOperation.java:56)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.take(ExecutionEntity.java:332
)
        at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performOutgoingBehavior(BpmnA
ctivityBehavior.java:102)
        at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performDefaultOutgoingBehavio
r(BpmnActivityBehavior.java:51)
        at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.leave(FlowNodeActivityBeh
avior.java:44)
        at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.execute(FlowNodeActivityB
ehavior.java:36)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperati
onActivityExecute.java:44)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStartInitial.eventNotification
sCompleted(AtomicOperationProcessStartInitial.java:44)
        at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt
omicOperation.java:56)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStart.eventNotificationsComple
ted(AtomicOperationProcessStart.java:44)
        at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAt
omicOperation.java:56)
        at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:
76)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(Executio
nEntity.java:497)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEnt
ity.java:492)
        at org.activiti.engine.impl.persistence.entity.ExecutionEntity.start(ExecutionEntity.java:28
6)
        at org.activiti.engine.impl.cmd.SubmitStartFormCmd.execute(SubmitStartFormCmd.java:80)
        at org.activiti.engine.impl.cmd.SubmitStartFormCmd.execute(SubmitStartFormCmd.java:35)
        at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java
:24)
        at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInte
rceptor.java:42)
        at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInter
ceptor.java:42)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.j
ava:130)
        at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.jav
a:40)
        at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
        at org.activiti.engine.impl.FormServiceImpl.submitStartFormData(FormServiceImpl.java:60)
        at org.activiti.explorer.ui.process.ProcessDefinitionDetailPanel$1.handleFormSubmit(ProcessD
efinitionDetailPanel.java:141)
        at org.activiti.explorer.ui.form.FormPropertiesEventListener.componentEvent(FormPropertiesEv
entListener.java:39)
        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:597)
        at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:490)
        at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164)
        at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1193)
        at org.activiti.explorer.ui.form.FormPropertiesForm.access$000(FormPropertiesForm.java:45)
        at org.activiti.explorer.ui.form.FormPropertiesForm$1.buttonClick(FormPropertiesForm.java:13
9)
        at sun.reflect.GeneratedMethodAccessor139.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:490)
        at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164)
        at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1193)
        at com.vaadin.ui.Button.fireClick(Button.java:539)
        at com.vaadin.ui.Button.changeVariables(Button.java:206)
        at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractC
ommunicationManager.java:1299)
        at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommu
nicationManager.java:1219)
        at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractC
ommunicationManager.java:735)
        at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManage
r.java:296)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServ
let.java:501)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.ja
va:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.reflect.InvocationTargetException
        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:597)
        at org.apache.cxf.common.util.ReflectionInvokationHandler.invoke(ReflectionInvokationHandler
.java:52)
        … 148 more

Client generated by Eclipse:


package com.argo.prevemplsvc;

* Please modify this class to meet your needs

import java.io.File;

/**
* This class was generated by Apache CXF 2.3.8
* 2012-01-25T13:31:49.701-06:00
* Generated source version: 2.3.8
*
*/
public final class PreviousEmploymentSIE_PreviousEmploymentPort_Client {

    private static final QName SERVICE_NAME = new QName("http://prevemplsvc.argo.com/", "PreviousEmploymentService");

    private PreviousEmploymentSIE_PreviousEmploymentPort_Client() {
    }

    public static void main(String args[]) throws java.lang.Exception {
        URL wsdlURL = PreviousEmploymentService.WSDL_LOCATION;
        if (args.length > 0) {
            File wsdlFile = new File(args[0]);
            try {
                if (wsdlFile.exists()) {
                    wsdlURL = wsdlFile.toURI().toURL();
                } else {
                    wsdlURL = new URL(args[0]);
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
        }
     
        PreviousEmploymentService ss = new PreviousEmploymentService(wsdlURL, SERVICE_NAME);
        PreviousEmploymentSIE port = ss.getPreviousEmploymentPort(); 
       
        {
        System.out.println("Invoking checkPreviousEmployment…");
//        java.lang.String _checkPreviousEmployment_arg0 = "_checkPreviousEmployment_arg0-436338067";
        java.lang.String _checkPreviousEmployment_arg0 = "ElijahEhud";
        java.lang.String _checkPreviousEmployment__return = port.checkPreviousEmployment(_checkPreviousEmployment_arg0);
        System.out.println("checkPreviousEmployment.result=" + _checkPreviousEmployment__return);


        }

        System.exit(0);
    }

}


Class used by Eclipse to create the Web Service (after Eclipse modified it):


package com.argo.prevemplsvc;

import java.util.Hashtable;

import javax.jws.WebService;

@WebService(targetNamespace = "http://prevemplsvc.argo.com/", endpointInterface = "com.argo.prevemplsvc.PreviousEmploymentSIE", portName = "PreviousEmploymentPort", serviceName = "PreviousEmploymentService")
public class PreviousEmployment implements PreviousEmploymentSIE
{
Hashtable<String,String> previousEmployees = new Hashtable<String,String>();
public PreviousEmployment()
{
  buildHistoryTable();
}
public String CheckPreviousEmployment(String applicantName)
{
  String prevEmploymentInfo = new String();
 
  if(null != applicantName && applicantName.length() > 0)
  {
   if(previousEmployees.containsKey(applicantName))
   {
    prevEmploymentInfo = applicantName
      + ":  "
      + (String) previousEmployees.get(applicantName)
      + ".";
   }
   else
   {
    prevEmploymentInfo = applicantName
      + ":  "
      + "No previous employment information was found.";
   }
  }
  else
  {
   prevEmploymentInfo = "No Name Supplied:  "
       + "No previous employment information was found.";
  }
 
  return prevEmploymentInfo;
}

private void buildHistoryTable()
{
  previousEmployees.put("BarryBlack",
    "Employed Dec. 2009 - June 2010.  Rehire: Conditional");
  previousEmployees.put("DanDrake",
    "Employed Mar. 2005 - Sept. 2009.  Rehire:  No");
  previousEmployees.put("FultonFulbright",
    "Employed Jan. 2007 - Dec. 2010.  Rehire:  Definitely");
  previousEmployees.put("HarveyHammer",
    "Employed Jan. 2007 - Dec. 2010.  Rehire:  Conditional");
}
}


ct1
Champ in-the-making
Champ in-the-making
I apologize for omitting the schema that is imported into the WSDL for the web service I am tryng to call from the BPMN Web Service Task.  Without it, you would have a hard time verifying that the process BPMN20 file matched the WSDL.

Thank you for taking the time to look at this.

Here is the schema that is imported:


  <?xml version="1.0" encoding="UTF-8" ?>
- <xs:schema elementFormDefault="unqualified" targetNamespace="http://prevemplsvc.argo.com/" version="1.0" xmlns:tns="http://prevemplsvc.argo.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="CheckPreviousEmployment" type="tns:CheckPreviousEmployment" />
  <xs:element name="CheckPreviousEmploymentResponse" type="tns:CheckPreviousEmploymentResponse" />
- <xs:complexType name="CheckPreviousEmployment">
- <xs:sequence>
  <xs:element minOccurs="0" name="applicantName" type="xs:string" />
  </xs:sequence>
  </xs:complexType>
- <xs:complexType name="CheckPreviousEmploymentResponse">
- <xs:sequence>
  <xs:element minOccurs="0" name="prevEmplInfo" type="xs:string" />
  </xs:sequence>
  </xs:complexType>
  </xs:schema>

ct1
Champ in-the-making
Champ in-the-making
As you suggested, I recreated the Web Services using only Apache CXF.  That seems to have fixed the problem that is the subject of this Post ("Error deploying BPMN20 containing a Web Service Task").  After recreating the Web Service using only Apache CXF, the BPMN20 file deployed in Explorer without throwing an Exception. 

For interested readers, in Eclipse (in the Java EE Perspective) you can select the class you want to use as the foundation of a new Web Service, right-click and select "Web Services" and select the "Create Web Service" option.  That will bring up the "Web Service" dialog that will allow you to select the Web Service Runtime option for the Service (and for a client).  Here you can select Apache CXF.

Thank you for reviewing all the code and stack traces I submitted and for suggesting this solution.

atifelkhachine
Champ in-the-making
Champ in-the-making
Hi,

It seems that you have a problem in your dependencies (please take a look the project .pom to see what i have added as dependencies …)
I have created for you a Maven project with a test case for your process.
I have created a 'Soapui' mock web service using your WSDL.

I have done a successful test :


….
30 janv. 2012 23:49:27 org.springframework.beans.factory.support.DefaultListableBeanFactory registerBeanDefinition
INFO: Overriding bean definition for bean 'org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder': replacing [Generic bean: class [org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [META-INF/cxf/cxf-extension-http.xml]] with [Generic bean: class [org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [META-INF/cxf/cxf-extension-http.xml]]
30 janv. 2012 23:49:27 org.springframework.beans.factory.support.DefaultListableBeanFactory registerBeanDefinition
INFO: Overriding bean definition for bean 'org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder': replacing [Generic bean: class [org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [META-INF/cxf/cxf-extension-http.xml]] with [Generic bean: class [org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [META-INF/cxf/cxf-extension-http.xml]]
30 janv. 2012 23:49:27 org.springframework.beans.factory.support.DefaultListableBeanFactory registerBeanDefinition
INFO: Overriding bean definition for bean 'org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider': replacing [Generic bean: class [org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [META-INF/cxf/cxf-extension-http.xml]] with [Generic bean: class [org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [META-INF/cxf/cxf-extension-http.xml]]
30 janv. 2012 23:49:27 org.springframework.beans.factory.support.DefaultListableBeanFactory registerBeanDefinition
INFO: Overriding bean definition for bean 'org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory': replacing [Generic bean: class [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory]; scope=; abstract=false; lazyInit=true; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [META-INF/cxf/cxf-extension-http.xml]] with [Generic bean: class [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory]; scope=; abstract=false; lazyInit=true; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [META-INF/cxf/cxf-extension-http.xml]]
30 janv. 2012 23:49:27 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.apache.cxf.bus.spring.BusApplicationContext@18bd7f1]: org.springframework.beans.factory.support.DefaultListableBeanFactory@e22f2b
30 janv. 2012 23:49:27 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@e22f2b: defining beans [cxf,org.apache.cxf.bus.spring.BusApplicationListener,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.endpoint.ServiceContractResolverRegistry,org.apache.cxf.jaxws.context.WebServiceContextResourceResolver,org.apache.cxf.jaxws.context.WebServiceContextImpl,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.binding.xml.XMLBindingFactory,org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder,org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider,org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder,org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider,org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory]; root of factory hierarchy
[b]CheckPrevEmploymentProcess started with candidate name toto.[/b]
30 janv. 2012 23:49:29 org.apache.cxf.jaxb.JAXBUtils logGeneratedClassNames
INFO: Created classes: com.argo.prevemplsvc.CheckPreviousEmployment, com.argo.prevemplsvc.CheckPreviousEmploymentResponse, com.argo.prevemplsvc.ObjectFactory
[b]After Call Prev Employment Web Service task, candidateName is toto.[/b]
[b]And prevEmplInfo is tutu.[/b]
[b]id 5 CheckPrevEmploymentProcess:1:4[/b]

Please import the attached project to your favorite IDE and don't forget to add Maven nature …

Best regards,
Atif

ct1
Champ in-the-making
Champ in-the-making
I really do thank you for your effort to help me.

I created a new folder, brought up Eclipse, and pointed Eclipse to the new, empty folder as its workspace.  Then I unzipped the file you attached into another folder.  Then I imported "Existing Projects into Workspace" pointing to the project that resulted from the unzip process.  I selected to copy the project into the workspace and watched as Maven built the project.  Then I modified the WSDL URL to point to the Web Service on my workstation, saved the BPMN20.xml file, selected "Create deployment artifacts…" (Which worked this time, for which I thank you.), and uploaded the .bar file into Explorer.  (I had to make one other change to the BPMN20 file because the one in the zip file used one variable name for the targetRef of the dataOutputAssociation - "prevEmplInfo" - and another variable name -"prevEmploymentInfo" - in the script task that is supposed to report what the value of that variable is.  I changed "prevEmplInfo" to "prevEmploymentInfo" in all places.)

I started the process, entered the candidate name on the start form, and clicked the Start process button.  The request to the Web Service (shown below) was generated, the response from the Web Service (shown below) was generated.  However, the "targetRef" of the "dataOutputAssociation", "prevEmploymentInfo", did not contain the value of the output message, "return", from the Web Service.  The log entries shown below show what the process variables of the BPMN20 process contained.

I was expecting to see the string contained between the <return> and the </return> in the process variable "prevEmploymentInfo".

This is the requst to the Web Service recorded as I monitored the Web Service.  It shows the value of arg0 comming from the BPMN20 proecss to be "HubertHarms", which is correct.

————————————–
Feb 2, 2012 2:59:04 PM org.apache.cxf.interceptor.AbstractLoggingInterceptor log
INFO: Inbound Message
—————————-
ID: 15
Address: http://lusr1315:9696/PrevEmployCheckWS/services/PreviousEmploymentPort
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml; charset=UTF-8
Headers: {Accept=[*/*], cache-control=[no-cache], connection=[keep-alive], Content-Length=[233], con
tent-type=[text/xml; charset=UTF-8], host=[lusr1315:9696], pragma=[no-cache], SOAPAction=[""], user-
agent=[Apache CXF 2.3.1]}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:Check
PreviousEmployment xmlns:ns2="http://prevemplsvc.argo.com/"><arg0>HubertHarms</arg0></ns2:CheckPrevi
ousEmployment></soap:Body></soap:Envelope>
————————————–


The response generated by the Web Service (please note the value of "return" which was supposed to be put into the process variable called prevEmploymentInfo):

————————————–
Feb 2, 2012 2:59:04 PM org.apache.cxf.interceptor.AbstractLoggingInterceptor log
INFO: Outbound Message
—————————
ID: 15
Encoding: UTF-8
Content-Type: text/xml
Headers: {}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:Check
PreviousEmploymentResponse xmlns:ns2="http://prevemplsvc.argo.com/"><return>HubertHarms:  No previou
s employment information was found.</return></ns2:CheckPreviousEmploymentResponse></soap:Body></soap
:Envelope>
————————————–

The log entries created by the script tasks within the BPMN20 process:

Feb 2, 2012 2:57:50 PM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy
INFO: Processing resource CheckPrevEmploymentProcess.bpmn20.xml
Feb 2, 2012 2:57:50 PM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes
INFO: XMLSchema currently not supported as typeLanguage
Feb 2, 2012 2:57:50 PM org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes
INFO: XPath currently not supported as expressionLanguage
CheckPrevEmploymentProcess started with candidate name HubertHarms.
Feb 2, 2012 2:59:03 PM org.apache.cxf.jaxb.JAXBUtils logGeneratedClassNames
INFO: Created classes: com.argo.prevemplsvc.CheckPreviousEmployment, com.argo.prevemplsvc.CheckPrevi
ousEmploymentResponse, com.argo.prevemplsvc.ObjectFactory
After Call Prev Employment Web Service task, candidateName is HubertHarms.
And prevEmploymentInfo is null.

As an aside, while you were working on this, I replaced the jar files in the activiti-explorer/WEB-INF/lib directory and in the activiti-rest/WEB-INF/lib directory with the jar files I found in the activiti-5.8/setup/build/webapps/activiti-rest.war/WEB-INF/lib and in the activiti-5.8/setup/build/webapps/activiti-explorer.war/WEB-INF/lib.  Then a co-worker showed me how to have Maven clean and rebuild a project outside of Eclipse.  Once that was done, I was able to create the deployment artifacts.  However, when I tried to execute the process in Explorer, I had the same problem I am having when I run the process you sent.

ct1
Champ in-the-making
Champ in-the-making
I have been working with the example process you send last Friday.  I was puzzled by the console output in your reply showing a value for the variable "prevEmplInfo" since that was not the value declared as the "targetRef" of the "dataOutputAssociation" in the BPMN20 file.

Then I realized that the output to the console came from your running the test case.  It appears that the test case ("ProcessTestCheckPrevEmploymentProcess.java") added a variable called "prevEmplInfo" with a value of "tutu" to the HashMap used as input to the process with the key of "CheckPrevEmploymentProcess".  The process seems to have read the variable from the HashMap and displayed its value on the console when you ran the test case.  The test case basically seems no different than just initializing the variable inside the BPMN20 process itself and then displaying its value.  That seems fundamentally different from getting a value from an external process (the web service) and then setting the variable to that value.  It is that disconnect - not being able to find in the "targetRef" (in this case the variable called "prevEmploymentInfo") the value the web service monitor says was put into the "sourceRef" (in this case the variable called "return") - that is stumping me.

I guess I should ask a question if I want a reply.  I know I have already asked a lot of you.  Do you think you might try the test again?  This time, set only the "candidateName" variable, let the process instance of "CheckPrevEmploymentProcess" call the mock web service, and then display the value the mock web service puts into the "return" variable and the value the BPMN20 process puts into the "prevEmploymentInfo" variable.

Thank you very much for your help.

ct1
Champ in-the-making
Champ in-the-making
While reading about using cxf to generate Web Services and clients, I read somewhere that generated method names and variable names are prepended with the "_" character.  I then looked in the client code generated by Eclipse for the Web Service I am trying to use and found ("checkPreviousEmployment.result=" + _checkPreviousEmployment__return").  As it turns out, the "__" before "return" is really two "_" characters, which means that the variable name is "_return".  I changed my BPMN20.xml file targetRef to be "_return" rather than "return".  Doing that made the data output by the Web Service available in the process variable I was trying to use.

Thank you for all the time and effort you put in to help with this. 

If there is any way to indicate that this is no longer a problem, please do so.

Thank you again.