Drools的运行时异常(org.drools.util.CompositeClassLoader.clone()Lorg / drools / util / CompositeClassLoader)

问题描述 投票:0回答:1

我正在用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)
java drools nosuchmethoderror
1个回答
0
投票

我有同样的问题,并在一段时间内与它斗争。在我的情况下,问题是由于库drools-api.jar v5.1.1和knowledge-api-5.4.0.Final.jar在运行时的冲突。这两个库都有类org.drools.util.CompositeClassLoader,但是drools-api.jar中的那个没有clone()方法,而且它在运行时加载了。我删除了drools-api.jar,现在它工作正常,规则也正在执行。

© www.soinside.com 2019 - 2024. All rights reserved.