无法通过Drools KnowledgeSession

时间:2016-07-05 12:19:41

标签: java marshalling drools

我使用了以下链接中提供的代码,看看我是否可以使用Marshall和Unmarshall进行Drools会话。

http://www.programcreek.com/java-api-examples/index.php?source_dir=droolsjbpm-master/drools-compiler/src/test/java/org/drools/integrationtests/SerializationHelper.java

使用方法getSerialisedStatefulKnowledgeSession。

我在方法的第一行收到以下错误。

代码行:

Marshaller marshaller = MarshallerFactory.newMarshaller(ksession.getKnowledgeBase(),(ObjectMarshallingStrategy[])ksession.getEnvironment().get(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES));

错误:

  

java.lang.ClassCastException:   [Lorg.kie.api.marshalling.ObjectMarshallingStrategy;无法施展   [Lorg.drools.marshalling.ObjectMarshallingStrategy;在   com.sample.SessionMarshall.getSerialisedStatefulKnowledgeSession(SessionMarshall.java:105)     在com.sample.DroolsTest.main(DroolsTest.java:36)

有人可以建议我如何解决这些错误。 或者有人可以向我提供代码片段给Marshall一个drools会话。

1 个答案:

答案 0 :(得分:0)

我使用了drools jars版本的6.2 +

一旦我将我的drools jar更改为版本5.4.0以及相关的jar版本,如下所示,问题已得到解决。

drools-compiler-5.4.0.Final, drools-core-5.4.0.Final, knowledge-api-5.4.0.Final, knowledge-internal-api-5.4.0.Final

mvel2-2.1.0.drools16, protobuf的-Java的2.4.1, ANTLR运行时-3.3