2016-07-05 60 views
0

我已经使用了以下链接中可用的代码,请参阅我是否可以Marshall和Unmarshall Drools会话。无法发布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; cannot be cast to [Lorg.drools.marshalling.ObjectMarshallingStrategy; at com.sample.SessionMarshall.getSerialisedStatefulKnowledgeSession(SessionMarshall.java:105) at com.sample.DroolsTest.main(DroolsTest.java:36)

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

回答

0

我已经使用Drools的罐子6.2+

一旦我改变了我的滴料罐到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-runtime-3.3