Drools 尝试从guvnor中使用changeset.xml读取规则会导致错误

Drools 尝试从guvnor中使用changeset.xml读取规则会导致错误,drools,eclipse-indigo,drools-guvnor,Drools,Eclipse Indigo,Drools Guvnor,我尝试使用以下代码从Guvnor加载包:- KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("GenderFact.xml"),ResourceType.CHANGE_SET); System.out.println("fair trial"); Knowledge

我尝试使用以下代码从Guvnor加载包:-

    KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
    kbuilder.add(ResourceFactory.newClassPathResource("GenderFact.xml"),ResourceType.CHANGE_SET);
    System.out.println("fair trial");
    KnowledgeBuilderErrors errors = kbuilder.getErrors();
    if (errors.size() > 0) {
        for (KnowledgeBuilderError error: errors) {
            System.err.println(error);
        }
        throw new IllegalArgumentException("Could not parse knowledge.");
    }
    KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
    kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
    return kbase;
GenderFact.xml的内容包括:-

<change-set xmlns="http://drools.org/drools-5.0/change-set"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="http://drools.org/drools-5.0/change-set http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd">
<add>
    <resource
        source="http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/MyLastTrial/LATEST/"
        type="PKG" basicAuthentication="disabled" username="admin" password="admin" />
</add>

当我试图从Eclipse执行此操作时,出现以下错误:-

java.lang.RuntimeException:java.io.InvalidClassException:org.drools.rule.MVELDialectRuntimeData;本地类不兼容:流classdesc serialVersionUID=5166066541265170937,本地类serialVersionUID=-64624826351992706 位于org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:705) 位于org.drools.compiler.PackageBuilder.addPackageFromChangeSet(PackageBuilder.java:772) 位于org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:694) 在org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:45)上 在org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:34)上 位于com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:43) 位于com.sample.DroolsTest.main(DroolsTest.java:26) 原因:java.io.InvalidClassException:org.drools.rule.MVELDialectRuntimeData;本地类不兼容:流classdesc serialVersionUID=5166066541265170937,本地类serialVersionUID=-64624826351992706 位于java.io.ObjectStreamClass.initNonProxy(未知源) 位于java.io.ObjectInputStream.readNonProxyDesc(未知源) 位于java.io.ObjectInputStream.readClassDesc(未知源) 位于java.io.ObjectInputStream.ReadOrderinaryObject(未知源) 位于java.io.ObjectInputStream.readObject0(未知源) 位于java.io.ObjectInputStream.readObject(未知源) 位于java.util.HashMap.readObject(未知源) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源) 位于java.lang.reflect.Method.invoke(未知源) 位于java.io.ObjectStreamClass.invokeReadObject(未知源) 位于java.io.ObjectInputStream.readSerialData(未知源) 位于java.io.ObjectInputStream.ReadOrderinaryObject(未知源) 位于java.io.ObjectInputStream.readObject0(未知源) 位于java.io.ObjectInputStream.readObject(未知源) 位于org.drools.rule.DialogRuntimeRegistry.readExternal(dialogRuntimeRegistry.java:59) 位于java.io.ObjectInputStream.readExternalData(未知源) 位于java.io.ObjectInputStream.ReadOrderinaryObject(未知源) 位于java.io.ObjectInputStream.readObject0(未知源) 位于java.io.ObjectInputStream.readObject(未知源) 位于org.drools.rule.Package.readExternal(Package.java:208) 位于java.io.ObjectInputStream.readExternalData(未知源) 位于java.io.ObjectInputStream.ReadOrderinaryObject(未知源) 位于java.io.ObjectInputStream.readObject0(未知源) 位于java.io.ObjectInputStream.readObject(未知源) 位于org.drools.core.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:205) 位于org.drools.core.util.DroolsStreamUtils.streamIn(DroolsStreamUtils.java:189) 位于org.drools.compiler.PackageBuilder.addPackageFromInputStream(PackageBuilder.java:781) 位于org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:692) ... 还有6个

先决条件:-

  • 我使用Guvnor 5.3和jboss AS 7.0
  • 客户端和服务器都共享相同的jre7
  • Eclipse Indigo中的Drools运行时5.3(服务版本2)

请求解决方案…

java项目中使用的与Drools相关的JAR与GUvnor 5.3中使用的版本不同。 在java项目中使用Guvnor 5.3中的JAR。
它将解决问题。:)

java项目中使用的与Drools相关的JAR与GUvnor 5.3中使用的版本不同。 在java项目中使用Guvnor 5.3中的JAR。 它将解决问题。:)