我正在使用Java运行drools项目。行KnowledgeBase kbase = readKnowledgeBase();给出了以下例外情况:
java.lang.NoSuchMethodError: org.drools.util.CompositeClassLoader.clone()Lorg/drools/util/CompositeClassLoader;
at org.drools.compiler.PackageBuilderConfiguration.getClassLoader(PackageBuilderConfiguration.java:322)
at org.drools.rule.builder.dialect.java.JavaDialectConfiguration.setCompiler(JavaDialectConfiguration.java:91)
at org.drools.rule.builder.dialect.java.JavaDialectConfiguration.init(JavaDialectConfiguration.java:54)
at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:273)
at org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurationMap(PackageBuilderConfiguration.java:262)
at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:175)
at org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:153)
at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:254)
at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:182)
at org.drools.builder.impl.KnowledgeBuilderFactoryServiceImpl.newKnowledgeBuilder(KnowledgeBuilderFactoryServiceImpl.java:34)
at org.drools.builder.KnowledgeBuilderFactory.newKnowledgeBuilder(KnowledgeBuilderFactory.java:47)
at com.sample.TestExample.readKnowledgeBase(TestExample.java:36)
at com.sample.TestExample.ProductClassHolder(TestExample.java:56)
at com.sample.TestExample.main(TestExample.java:30)发布于 2018-01-02 11:42:21
我也有同样的问题,并与它斗争了一段时间。在我的例子中,这个问题是由于库、drools-api.jar v5.1.1、和运行时的之间的冲突造成的。这两个库都有类org.drools.util.CompositeClassLoader,但是drools-api.jar中的库没有clone()方法,这是在运行时加载的。我删除了drools-api.jar,现在它运行良好,规则也得到了执行。
https://stackoverflow.com/questions/42249140
复制相似问题