简体   繁体   English

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

[英]Runtime exception with Drools(org.drools.util.CompositeClassLoader.clone()Lorg/drools/util/CompositeClassLoader)

I'm running drools project with Java. 我正在用Java运行Drools项目。 The line KnowledgeBase kbase = readKnowledgeBase(); 该行KnowledgeBase kbase = readKnowledgeBase(); gives the exception below: 给出以下异常:

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)

I had the same issue and struggled with it for a while. 我遇到了同样的问题,并为此苦了一段时间。 In my case the issue was due to the conflict of libraries drools-api.jar v5.1.1 and knowledge-api-5.4.0.Final.jar at runtime. 在我的情况下,问题是由于运行时库drools-api.jar v5.1.1Knowledge-api-5.4.0.Final.jar冲突引起的。 Both of these libraries have class org.drools.util.CompositeClassLoader but the one in drools-api.jar doesn't have the clone() method and this was getting loaded at runtime. 这两个库都具有org.drools.util.CompositeClassLoader类,但是drools-api.jar中的一个库没有clone()方法,并且该库在运行时被加载。 I removed drools-api.jar and now it is working fine and rules are also getting executed. 我删除了drools-api.jar ,现在一切正常,规则也正在执行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM