尝试运行Drools示例时引发的运行异常 [英] RuntimeException trying to run Drools examples

查看:0
本文介绍了尝试运行Drools示例时引发的运行异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我下载了Drools 7.46.0,并将其内容解压到本地驱动器。当我尝试使用提供的runExsames.sh脚本从Linux命令行运行这些示例时,我得到了以下异常。我试过使用Java 8和Java 11(我安装的唯一版本)。这真的像消息建议的那样需要Java 6吗?还是存在其他问题?

我刚接触Drools,所以恐怕我不确定如何解决此问题。

更新:有趣的是,我尝试了7.44.0版,它运行得很好。所以下载了7.45.0。好的,那个也坏了。因此,7.44和7.45之间发生了一些变化,导致了这一点。

10:06:44.154 [main] INFO  o.k.a.i.utils.ServiceDiscoveryImpl.processKieService:129 - Cannot load service: org.kie.internal.process.CorrelationKeyFactory
10:06:44.157 [main] ERROR o.k.a.i.utils.ServiceDiscoveryImpl.processKieService:131 - Loading failed because There already exists an implementation for service org.drools.core.reteoo.KieComponentFactoryFactory with same priority 0
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.drools.dynamic.DynamicServiceRegistrySupplier.get(DynamicServiceRegistrySupplier.java:32)
    at org.drools.dynamic.DynamicServiceRegistrySupplier.get(DynamicServiceRegistrySupplier.java:23)
    at org.kie.api.internal.utils.ServiceRegistry$Impl.getServiceRegistry(ServiceRegistry.java:88)
    at org.kie.api.internal.utils.ServiceRegistry$ServiceRegistryHolder.<clinit>(ServiceRegistry.java:47)
    at org.kie.api.internal.utils.ServiceRegistry.getInstance(ServiceRegistry.java:39)
    at org.kie.api.internal.utils.ServiceRegistry.getService(ServiceRegistry.java:35)
    at org.kie.api.KieServices$Factory$LazyHolder.<clinit>(KieServices.java:358)
    at org.kie.api.KieServices$Factory.get(KieServices.java:365)
    at org.kie.api.KieServices.get(KieServices.java:349)
    at org.drools.examples.DroolsExamplesApp.<init>(DroolsExamplesApp.java:59)
    at org.drools.examples.DroolsExamplesApp.main(DroolsExamplesApp.java:52)
Caused by: java.lang.RuntimeException: Unable to build kie service url = jar:file:/home/davek/apps/drools-distribution-7.46.0.Final/examples/binaries/drools-examples-7.46.0.Final.jar!/META-INF/kie.conf
    at org.kie.api.internal.utils.ServiceDiscoveryImpl.registerConfs(ServiceDiscoveryImpl.java:105)
    at org.kie.api.internal.utils.ServiceDiscoveryImpl.lambda$getServices$1(ServiceDiscoveryImpl.java:83)
    at java.util.Optional.ifPresent(Optional.java:159)
    at org.kie.api.internal.utils.ServiceDiscoveryImpl.getServices(ServiceDiscoveryImpl.java:81)
    at org.kie.api.internal.utils.ServiceRegistry$Impl.<init>(ServiceRegistry.java:60)
    at org.drools.dynamic.DynamicServiceRegistrySupplier$LazyHolder.<clinit>(DynamicServiceRegistrySupplier.java:27)
    ... 11 more
Caused by: java.lang.RuntimeException: There already exists an implementation for service org.drools.core.reteoo.KieComponentFactoryFactory with same priority 0
    at org.kie.api.internal.utils.ServiceDiscoveryImpl$PriorityMap.put(ServiceDiscoveryImpl.java:222)
    at org.kie.api.internal.utils.ServiceDiscoveryImpl.processKieService(ServiceDiscoveryImpl.java:124)
    at org.kie.api.internal.utils.ServiceDiscoveryImpl.registerConfs(ServiceDiscoveryImpl.java:101)
    ... 16 more

推荐答案

不幸的是,这是我用this commit修复的一个已知问题。 即将发布的Drools7.47.0最终版(将于下周发布)将不会受到这方面的影响。

这篇关于尝试运行Drools示例时引发的运行异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆