8 Replies Latest reply on Feb 22, 2016 3:48 PM by Bob Hastings

    Jbpm 6.1.0.Final Serialization issue while using Collection type output variable in Human Task.

    Soumya Bose Newbie

      I am using java.util.List / java.util.Map in Human task's output variable. While completing the task Its giving me Serialization exception. I have uploaded my bpmn file in jbpm-console's project and accessing through remote rest api through my test case. I am getting following exception stack trace -

       

      org.kie.services.client.serialization.SerializationException: Unable to marshall JaxbCommandsRequest instance.

          at org.kie.services.client.serialization.JaxbSerializationProvider.serialize(JaxbSerializationProvider.java:179)

          at org.kie.services.client.api.command.AbstractRemoteCommandObject.executeRestCommand(AbstractRemoteCommandObject.java:384)

          at org.kie.services.client.api.command.AbstractRemoteCommandObject.execute(AbstractRemoteCommandObject.java:120)

          at org.jbpm.services.task.impl.command.CommandBasedTaskService.complete(CommandBasedTaskService.java:144)

          at com.cordistech.eibp.jbpm.bridge.test.SampleJbpmRuntimeTest.testExceptionHandling(SampleJbpmRuntimeTest.java:498)

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

          at java.lang.reflect.Method.invoke(Method.java:606)

          at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)

          at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

          at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)

          at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

          at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)

          at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)

          at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)

          at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)

          at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)

          at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)

          at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)

          at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)

          at org.junit.runners.ParentRunner.run(ParentRunner.java:309)

          at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)

          at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)

          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

      Caused by: javax.xml.bind.MarshalException

      - with linked exception:

      [com.sun.istack.SAXException2: class org.drools.core.xml.jaxb.util.JaxbListWrapper nor any of its super class is known to this context.

      javax.xml.bind.JAXBException: class org.drools.core.xml.jaxb.util.JaxbListWrapper nor any of its super class is known to this context.]

          at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:326)

          at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:251)

          at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:116)

          at org.kie.services.client.serialization.JaxbSerializationProvider.serialize(JaxbSerializationProvider.java:177)

          ... 27 more

      Caused by: com.sun.istack.SAXException2: class org.drools.core.xml.jaxb.util.JaxbListWrapper nor any of its super class is known to this context.

      javax.xml.bind.JAXBException: class org.drools.core.xml.jaxb.util.JaxbListWrapper nor any of its super class is known to this context.

          at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:247)

          at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:262)

          at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:653)

          at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:158)

          at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:358)

          at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696)

          at com.sun.xml.bind.v2.runtime.ArrayBeanInfoImpl.serializeBody(ArrayBeanInfoImpl.java:142)

          at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696)

          at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:158)

          at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:358)

          at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696)

          at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:158)

          at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:358)

          at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696)

          at com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:69)

          at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:172)

          at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:159)

          at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:358)

          at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:593)

          at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:340)

          at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494)

          at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:323)

          ... 30 more

      Caused by: javax.xml.bind.JAXBException: class org.drools.core.xml.jaxb.util.JaxbListWrapper nor any of its super class is known to this context.

          at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:588)

          at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:648)

          ... 49 more

       

      Please suggest how to use any Collection type variable in Human Task's output variable ? Shall I need to put any additional jar file within 'jbpm-console/WEB-INF/lib' to get rid of this serialization exception ? Any help will be really appreciated.