1 Reply Latest reply on Dec 28, 2012 7:52 AM by Alive Substance

    Serialization issue with KnowledgeDefinitionsPackage again

    Alive Substance Newbie



      I am trying to deploy jbpm console and human task on Amazon EC. And there are several issue that I didn't catch when do the same step on my local PC.

      I build from source jbpm console client, server and human task wars. Changes that I made:

      1. Replace persistence properties to work with MySQL.

      2. Make sure that drools-*, knowledge-* and jbpm-* jars have the same version in all WARs.

      3. Disable to use default evaluation process example.


      When I logged on to console using krisv/krisv and click on the Processes tab I got the next error:


      java.lang.RuntimeException: KnowledgeAgent exception while trying to deserialize KnowledgeDefinitionsPackage  
      11:20:44,398 ERROR [stderr] (http--      at org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:796)
      11:20:44,409 ERROR [stderr] (http--      at org.drools.agent.impl.KnowledgeAgentImpl.incrementalBuildResources(KnowledgeAgentImpl.java:987)
      11:20:44,420 ERROR [stderr] (http--      at org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:686)
      11:20:44,575 ERROR [stderr] (http--      at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:207)
      11:20:44,586 ERROR [stderr] (http--      at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:186)
      11:20:44,596 ERROR [stderr] (http--      at org.jbpm.integration.console.kbase.DefaultKnowledgeBaseManager.buildKnowledgeAgent(DefaultKnowledgeBaseManager.java:157)
      11:20:44,611 ERROR [stderr] (http--      at org.jbpm.integration.console.kbase.DefaultKnowledgeBaseManager.syncPackages(DefaultKnowledgeBaseManager.java:122)
      11:20:44,623 ERROR [stderr] (http--      at org.jbpm.integration.console.CommandDelegate.getProcesses(CommandDelegate.java:67)
      11:20:44,633 ERROR [stderr] (http--      at org.jbpm.integration.console.ProcessManagement.getProcessDefinitions(ProcessManagement.java:42)
       Caused by: java.io.InvalidClassException: org.drools.rule.MVELDialectRuntimeData; local class incompatible: stream classdesc serialVersionUID = -64624826351992706, 
      local class serialVersionUID = -4238880767631114244
      11:20:46,834 ERROR [stderr] (http--      at org.drools.core.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:205)
      11:20:46,843 ERROR [stderr] (http--      at org.drools.core.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:189)
      11:20:46,853 ERROR [stderr] (http--      at org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:769)


      I am looking thru the forum and found a few threads with the problem like this. But I didn't find an answer.

      What I miss?


      The root cause I think it's with jboss class loaders. Maybe there is way to install drools-core(because it contains MVELDialectRuntimeData) inside a jboss and use it like a "provide" dependency?


      Byt the way. Is it necessary that drool-* pakackes will be to one minor version higher that jbpm-*. F.i. if jbpm 5.4.0.Final that drools should be 5.5.0.Final?.