我使用了以下链接中提供的代码,看看我是否可以使用Marshall和Unmarshall进行Drools会话。
使用方法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会话。
答案 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