AnsweredAssumed Answered

Werservice task error: Parse XML  java.lang.ClassCastException

Question asked by krull80 on Oct 23, 2013
Latest reply on Apr 24, 2015 by trademak
Hello All,

I'm having a problem while deploying a diagram that is using a webservice task. While deploying the diagram:


<?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:pub="http://mynamespace/services/publication-service/v0"
   xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema"
   expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://eu.oami.europe/flows/MarkCreation"
   xmlns:tns="http://eu.oami.europe/flows/MarkCreation">
   <import location="http://pc619155:8088/SendPublication?wsdl"
      namespace="http://mynamespace/services/publication-service/v0"
      importType="http://schemas.xmlsoap.org/wsdl/" />

   <message id="SendPublicationRequestMessage" itemRef="tns:SendPublicationRequestItem" />
   <message id="SendPublicationResponseMessage" itemRef="tns:SendPublicationResponseItem" />
   <itemDefinition id="SendPublicationRequestItem"
      structureRef="pub:SendPublicationRequest" />
   <itemDefinition id="SendPublicationResponseItem"
      structureRef="pub:SendPublicationResponse" />
   <interface name="Find customer address" implementationRef="pub:SendPublicationService">
      <operation id="SendPublicationOperation" name="Send a Publication Operation"
         implementationRef="pub:SendPublication">
         <inMessageRef>tns:SendPublicationRequestMessage</inMessageRef>
         <outMessageRef>tns:SendPublicationResponseMessage</outMessageRef>
      </operation>
   </interface>
   <itemDefinition id="name" structureRef="string" />
   <itemDefinition id="customerName" structureRef="string" />
   <itemDefinition id="address" structureRef="string" />
   <itemDefinition id="webserviceResponse" structureRef="string" />
   <process id="myProcess" name="My process" isExecutable="true"
      activiti:candidateStarterUsers="kermit,gonzo"
      activiti:candidateStarterGroups="management">
      <startEvent id="startFlowEvent" name="Start Validation Process"
         activiti:initiator="employeeName">
         <extensionElements>
            <activiti:formProperty id="tradeMarkBody"
               name="TradeMark Body Content" type="string" required="true"></activiti:formProperty>
            <activiti:formProperty id="tradeMarkBodyJSON"
               name="JSON Trade Mark  body" type="string" required="true"></activiti:formProperty>
            <activiti:formProperty id="TradeMarkIdentifier"
               name="Unique Trade Mark Identifier" type="string"></activiti:formProperty>
            <activiti:formProperty id="Publishable"
               name="Should it be published" type="string" required="true"></activiti:formProperty>
         </extensionElements>
      </startEvent>
      <exclusiveGateway id="validate_exclusive_gateway"
         name="Is Valid" gatewayDirection="Mixed"></exclusiveGateway>
      <scriptTask id="invalid_script_task" name="Script Task"
         scriptFormat="groovy" activiti:autoStoreVariables="true">
         <script>out:print "Operation is not valid"</script>
      </scriptTask>
      <sequenceFlow id="gateway_to_invalid_flow" name="Invalid Input"
         sourceRef="validate_exclusive_gateway" targetRef="invalid_script_task">
         <conditionExpression>${Publishable == 'false'}</conditionExpression>
      </sequenceFlow>
      <endEvent id="end_process_event" name="End"></endEvent>
      <sequenceFlow id="script_task_to_end_event" sourceRef="invalid_script_task"
         targetRef="end_process_event"></sequenceFlow>
      <serviceTask id="publish_service_task" name="Publish Service Task"
         implementation="##WebService" operationRef="tns:SendPublicationOperation">

         <ioSpecification>
            <dataInput id="dataInput" itemSubjectRef="tns:SendPublicationRequestItem" />
            <dataOutput id="dataOutput" itemSubjectRef="tns:SendPublicationResponseItem" />
            <inputSet>
               <dataInputRefs>dataInput</dataInputRefs>
            </inputSet>
            <outputSet>
               <dataOutputRefs>dataOutput</dataOutputRefs>
            </outputSet>
         </ioSpecification>
      </serviceTask>
      <sequenceFlow id="gateway_to_valid_flow" name="Valid Input"
         sourceRef="validate_exclusive_gateway" targetRef="publish_service_task">
         <conditionExpression>${Publishable == 'true'}</conditionExpression>
      </sequenceFlow>
      <sequenceFlow id="publish_service_task_to_end_event"
         sourceRef="publish_service_task" targetRef="end_process_event"></sequenceFlow>
      <userTask id="validate_content_user_task" name="Validate Body Content"></userTask>
      <sequenceFlow id="start_event_to_validate_user_task_flow"
         sourceRef="startFlowEvent" targetRef="validate_content_user_task"></sequenceFlow>
      <sequenceFlow id="validate_user_task_to_gateway_flow"
         sourceRef="validate_content_user_task" targetRef="validate_exclusive_gateway"></sequenceFlow>
   </process>   
</definitions>


I'm having the following problem:

ADVERTENCIA: Exception or error caught in resource
org.activiti.engine.ActivitiException: Error parsing XML
        at org.activiti.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:195)
        at org.activiti.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:86)
        at org.activiti.engine.impl.persistence.deploy.DeploymentManager.deploy(DeploymentManager.java:42)
        at org.activiti.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:68)
        at org.activiti.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:33)
        at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
        at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:61)
        at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
        at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)
        at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31)
        at org.activiti.engine.impl.RepositoryServiceImpl.deploy(RepositoryServiceImpl.java:74)
        at org.activiti.engine.impl.repository.DeploymentBuilderImpl.deploy(DeploymentBuilderImpl.java:134)
        at org.activiti.rest.api.repository.DeploymentCollectionResource.uploadDeployment(DeploymentCollectionResource.java:117)
        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.restlet.resource.ServerResource.doHandle(ServerResource.java:449)
        at org.restlet.resource.ServerResource.post(ServerResource.java:1114)
        at org.restlet.resource.ServerResource.doHandle(ServerResource.java:533)
        at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:590)
        at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:302)
        at org.restlet.resource.ServerResource.handle(ServerResource.java:849)
        at org.restlet.resource.Finder.handle(Finder.java:513)
        at org.restlet.routing.Filter.doHandle(Filter.java:159)
        at org.restlet.routing.Filter.handle(Filter.java:206)
        at org.restlet.routing.Router.doHandle(Router.java:500)
        at org.restlet.routing.Router.handle(Router.java:740)
        at org.restlet.routing.Filter.doHandle(Filter.java:159)
        at org.restlet.routing.Filter.handle(Filter.java:206)
        at org.restlet.routing.Filter.doHandle(Filter.java:159)
        at org.restlet.routing.Filter.handle(Filter.java:206)
        at org.restlet.routing.Filter.doHandle(Filter.java:159)
        at org.restlet.routing.Filter.handle(Filter.java:206)
        at org.restlet.routing.Filter.doHandle(Filter.java:159)
        at org.restlet.routing.Filter.handle(Filter.java:206)
        at org.restlet.routing.Filter.doHandle(Filter.java:159)
        at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:155)
        at org.restlet.routing.Filter.handle(Filter.java:206)
        at org.restlet.routing.Filter.doHandle(Filter.java:159)
        at org.restlet.routing.Filter.handle(Filter.java:206)
        at org.restlet.engine.ChainHelper.handle(ChainHelper.java:114)
        at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:75)
        at org.restlet.Application.handle(Application.java:391)
        at org.restlet.routing.Filter.doHandle(Filter.java:159)
        at org.restlet.routing.Filter.handle(Filter.java:206)
        at org.restlet.routing.Router.doHandle(Router.java:500)
        at org.restlet.routing.Router.handle(Router.java:740)
        at org.restlet.routing.Filter.doHandle(Filter.java:159)
        at org.restlet.routing.Filter.handle(Filter.java:206)
        at org.restlet.routing.Router.doHandle(Router.java:500)
        at org.restlet.routing.Router.handle(Router.java:740)
        at org.restlet.routing.Filter.doHandle(Filter.java:159)
        at org.restlet.routing.Filter.handle(Filter.java:206)
        at org.restlet.engine.ChainHelper.handle(ChainHelper.java:114)
        at org.restlet.Component.handle(Component.java:391)
        at org.restlet.Server.handle(Server.java:491)
        at org.restlet.engine.ServerHelper.handle(ServerHelper.java:74)
        at org.restlet.engine.http.HttpServerHelper.handle(HttpServerHelper.java:153)
        at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1031)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassCastException: com.sun.codemodel.JCodeModel$JReferencedClass cannot be cast to com.sun.codemodel.JDefinedClass
        at org.activiti.engine.impl.webservice.CxfWSDLImporter.importStructure(CxfWSDLImporter.java:156)
        at org.activiti.engine.impl.webservice.CxfWSDLImporter.importTypes(CxfWSDLImporter.java:150)
        at org.activiti.engine.impl.webservice.CxfWSDLImporter.importFrom(CxfWSDLImporter.java:109)
        at org.activiti.engine.impl.webservice.CxfWSDLImporter.importFrom(CxfWSDLImporter.java:70)
        at org.activiti.engine.impl.bpmn.parser.BpmnParse.createImports(BpmnParse.java:273)
        at org.activiti.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:186)


I have deployed it in Tomcat 7.0.33 with java 1.6 and cxf 2.4.1 and 2.7.7 and java 1.7 with cxf 2.7.7 and 2.4.1 both with the same error.
I also tried in weblogic with similar result ( but it took me more time for solving weblogic class loading issues :-( ).


The wsdl content is:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:tns="http://mynamespace/services/publication-service/v0"
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   name="PublicationService" xmlns:pub="http://mynamespace/dossier/publication/service/v0"
   targetNamespace="http://mynamespace/services/publication-service/v0">
   <wsdl:types>
      <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <xsd:import namespace="http://mynamespace/dossier/publication/service/v0"
            schemaLocation="PublicationService.xsd">
         </xsd:import>
      </xsd:schema>
   </wsdl:types>

   <wsdl:message name="SendPublicationRequest">
      <wsdl:part element="pub:SendPublicationRequest" name="parameters" />
   </wsdl:message>
   
   <wsdl:message name="SendPublicationResponse">
      <wsdl:part element="pub:SendPublicationResponse" name="parameters" />
   </wsdl:message>
   
   <wsdl:message name="SendPublicationFault">
      <wsdl:part name="parameters" element="pub:RegistryFault"></wsdl:part>
   </wsdl:message>

   <wsdl:portType name="SendPublicationService">
      <wsdl:operation name="SendPublication">
         <wsdl:input message="tns:SendPublicationRequest" />
         <wsdl:output message="tns:SendPublicationResponse"/>
         <wsdl:fault name="fault" message="tns:SendPublicationFault"></wsdl:fault>
      </wsdl:operation>
   </wsdl:portType>
   <wsdl:binding name="SendPublicationSOAP" type="tns:SendPublicationService">
      <soap:binding style="document"
         transport="http://schemas.xmlsoap.org/soap/http" />
      <wsdl:operation name="SendPublication">
         <soap:operation soapAction="" />
         <wsdl:input>
            <soap:body use="literal" />
         </wsdl:input>
         <wsdl:output>
            <soap:body use="literal" />
         </wsdl:output>
         <wsdl:fault name="fault">
            <soap:fault use="literal" name="fault" />
         </wsdl:fault>
      </wsdl:operation>
   </wsdl:binding>
   <wsdl:service name="SendPublicationService">
      <wsdl:port binding="tns:SendPublicationSOAP" name="SendPublicationServiceSOAP">
         <soap:address location="http://localhost:8081/sendPublication" />
      </wsdl:port>
   </wsdl:service>
</wsdl:definitions>

and the imported schema:


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
   targetNamespace="http://mynamespace/dossier/publication/service/v0"
   xmlns:tns="http://mynamespace/dossier/publication/service/v0"   
   elementFormDefault="qualified">
   
   
   
   <!– OPERATIONS –>
   <xs:element name="SendPublicationRequest" type="xs:string" />
   
   <xs:element name="SendPublicationResponse">
      <xs:complexType>
         <xs:sequence/>
      </xs:complexType>
   </xs:element>
   
   <!– Generic exception fault –>
   <xs:element name="RegistryFault" type="xs:string">
      <xs:annotation>
         <xs:documentation>
            The default message soap fault.
         </xs:documentation>
      </xs:annotation>
   </xs:element>
</xs:schema>


I hope you can help me with this issue as I have been stuck for the last couple of days and I don't know what I'm doing wrong.

Thanks in advance
Luis

Outcomes