Исключительная ситуация времени выполнения с Drools(org.drools.util.CompositeClassLoader.clone()Lorg/drools/util/CompositeClassLoader)

Я запускаю проект drools с Java. Линия 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)

1 ответ

У меня была такая же проблема, и я некоторое время боролся с ней. В моем случае проблема была связана с конфликтом библиотек drools-api.jar v5.1.1 и Knowledge-api-5.4.0.Final.jar во время выполнения. Обе эти библиотеки имеют класс org.drools.util.CompositeClassLoader но тот, что в drools-api.jar не имеет clone() метод, и это загружалось во время выполнения. Я удалил drools-api.jar, и теперь он работает нормально, и правила также выполняются.

Другие вопросы по тегам