2016-07-05 4 views
0

Ich habe den Code im folgenden Link verwendet, um zu sehen, ob ich eine Drools-Sitzung Marshall und Unmarshall.Nicht in der Lage Marshall a Drools KnowledgeSession

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

die Methode getSerialisedStatefulKnowledgeSession verwendet.

Ich bekomme den folgenden Fehler in der ersten Zeile der Methode.

Codezeile:

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

Fehler:

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)

Kann mir jemand bitte vorschlagen, wie ich diese Fehler beheben können. Oder kann mir jemand Code-Snippet Marshall eine Drools-Sitzung zur Verfügung stellen.

Antwort

0

I drools verwendet haben rüttelt Version 6.2+

Sobald ich meine drools Gläser auf Version 5.4.0 und zugehörige jar Versionen geändert, wie unten dargestellt, hat das Problem behoben worden ist.

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