AnsweredAssumed Answered

Deployment of a process with a web service task

Question asked by chris.joelly on Aug 21, 2011
Latest reply on Aug 26, 2011 by jbarrez
Hello,

i tried to create a simple process using a webservice which works fine with a Java client,
but when i integrate it in a bpmn process the deployer throws the following exception:


Caused by: org.activiti.engine.ActivitiException: Could not find importer for type http://schemas.xmlsoap.org/wsdl/ | webservice-task.bpmn20.xml | line 24 | column 52
Could not import item of type http://schemas.xmlsoap.org/wsdl/ | webservice-task.bpmn20.xml | line 24 | column 52
   at org.activiti.engine.impl.util.xml.Parse.throwActivitiExceptionForErrors(Parse.java:186)
   at org.activiti.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:198)
   at org.activiti.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:81)
   at org.activiti.engine.impl.persistence.deploy.DeploymentCache.deploy(DeploymentCache.java:37)
   at org.activiti.engine.impl.persistence.entity.DeploymentManager.insertDeployment(DeploymentManager.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(CommandContextInterceptor.java:42)
   at org.activiti.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:59)
   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.java:106)
   at erp.domain.activiti.mgnt.ProcessImporterEJB.importProcess(ProcessImporterEJB.java:40)


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<definitions
   xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
   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"
   xmlns:signavio="http://www.signavio.com"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:account="http://account.services.erp/"
   xmlns:erp="http://erp"
   targetNamespace="http://erp"
   exporter="Signavio Process Editor, http://www.signavio.com"
   exporterVersion=""
   id="sid-00df302c-3f67-401e-ac8f-36ada10e3e5c"
   xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd">
   
   <!– ns erp and account added for web service –>

   <!– added for webservice –>
   <import importType="http://schemas.xmlsoap.org/wsdl/"
        location="http://localhost:8282/erp.service.account/services/AccountServiceDelegatePort?wsdl"
        namespace="http://account.services.erp/" />
       
   <itemDefinition id="accountExistsRequestItem" structureRef="account:accountExists" />                 <!– QName of input element –>
   <itemDefinition id="accountExistsResponseItem" structureRef="account:accountExistsResponse" />   <!– QName of output element –>
       
   <message id="accountExistsRequestMessage" itemRef="erp:accountExistsRequestItem" />
   <message id="accountExistsResponseMessage" itemRef="erp:accountExistsResponseItem" />
  
   <interface name="accountExist interface" implementationRef="account:AccountService">                <!– QName of WSDL Port Type –>
       <operation id="accountExists" name="accountExists operation" implementationRef="account:accountExists"> <!– QName of WSDL Operation –>
           <inMessageRef>erp:accountExistsRequestMessage</inMessageRef>
           <outMessageRef>erp:accountExistsResponseMessage</outMessageRef>
       </operation>
   </interface>
   <!– /added for webservice –>

   <process id="webservice-call-process" isExecutable="false" name="webservice-call-process">
  
      <!– added for webservice –>
      <ioSpecification>
          <dataInput id="dataInputOfProcess" itemSubjectRef="erp:accountExistsRequestItem" />
          <dataOutput id="dataOutputOfProcess" itemSubjectRef="erp:accountExistsResponseItem" />
          <inputSet>
              <dataInputRefs>dataInputOfProcess</dataInputRefs>
          </inputSet>
          <outputSet>
              <dataOutputRefs>dataOutputOfProcess</dataOutputRefs>
          </outputSet>
      </ioSpecification>
      <!– /added for webservice –>
  
      <startEvent id="Start" name="Start" activiti:formKey="startWebservice.jsf">
         <extensionElements></extensionElements>
      </startEvent>

      <serviceTask id="Call_Webservice_Task" name="Call Webservice Task" implementation="##WebService" operationRef="erp:accountExists">
         <extensionElements></extensionElements>
        
         <!– added for webservice –>
         <ioSpecification>
             <dataInput id="dataInputOfServiceTask" itemSubjectRef="erp:accountExistsRequestItem" />
             <dataOutput id="dataOutputOfServiceTask" itemSubjectRef="erp:accountExistsResponseItem" />
             <inputSet>
                 <dataInputRefs>dataInputOfServiceTask</dataInputRefs>
             </inputSet>
             <outputSet>
                 <dataOutputRefs>dataOutputOfServiceTask</dataOutputRefs>
             </outputSet>
         </ioSpecification>
        
         <dataInputAssociation>
             <sourceRef>dataInputOfProcess</sourceRef>
             <targetRef>dataInputOfServiceTask</targetRef>
         </dataInputAssociation>
         <dataOutputAssociation>
             <sourceRef>dataOutputOfServiceTask</sourceRef>
             <targetRef>dataOutputOfProcess</targetRef>
         </dataOutputAssociation>
         <!– /added for webservice –>

      </serviceTask>

      <userTask id="Verify_results" name="Verify results" activiti:formKey="verifyWebservice.jsf">
         <extensionElements></extensionElements>
         <potentialOwner id="sid-5ceef2e1-7051-462b-bdb6-d8dfbd988592">
            <resourceAssignmentExpression id="sid-7d2dfb7f-1011-48e6-89b9-005a12164b1c">
               <formalExpression id="sid-27696340-6584-4375-aa63-9a8f624c4608">crm</formalExpression>
            </resourceAssignmentExpression>
         </potentialOwner>
      </userTask>

      <endEvent id="End" name="End">
         <extensionElements></extensionElements>
      </endEvent>

      <sequenceFlow id="SequenceFlow_1" name="SequenceFlow" sourceRef="Start" targetRef="Call_Webservice_Task"></sequenceFlow>
      <sequenceFlow id="SequenceFlow_2" name="SequenceFlow" sourceRef="Call_Webservice_Task" targetRef="Verify_results"></sequenceFlow>
      <sequenceFlow id="SequenceFlow_3" name="SequenceFlow" sourceRef="Verify_results" targetRef="End"></sequenceFlow>
   </process>
</definitions>

i studied the user guide and the CXF samples but i can not see the problem. Is there some
confusion how i define the mappings? Initially i got some errors because i did not understand
the mapping definition in the process definition well, but these problems seem to be fixed now.

Thanks in advance

Chris

Outcomes