2016-07-05 50 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