由java.lang.RuntimeException引起的线程“main”java.lang.ExceptionInInitializerError中的异常:无法实例KieServices

时间:2015-12-17 17:23:29

标签: java drools drools-guvnor kie

我正在尝试使用Drools 6x,在eclipse中,我创建了一个Drools项目,它创建了一个样板代码来运行一个简单的drl。

我通过Eclipse安装了drools运行时。

我已将drools库,drools-core-5.0.1.jar,kie-api-6.0.0.beta4.jar,kie-internal-6.0.0.beta2.jar作为我项目中的外部jar。

然而,当我尝试运行以下内容时,出现以下错误:

 java.lang.ExceptionInInitializerError 
at com.sample.PetStoreExample.init(PetStoreExample.java:78)
at com.sample.PetStoreExample.main(PetStoreExample.java:67) Caused by: java.lang.RuntimeException: Unable to instance KieServices 
    at org.kie.api.KieServices$Factory.<clinit>(KieServices.java:137) 
    ... 1 more Caused by: java.lang.ClassNotFoundException:org.drools.compiler.kie.builder.impl.KieServicesImpl  at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at org.kie.api.KieServices$Factory.<clinit>(KieServices.java:165) 
    ... 1 more  

2 个答案:

答案 0 :(得分:0)

如果您从http://www.drools.org/下载了Jars的zip,那么您将希望在项目中包含/ binaries中的每个jar。甚至那些看起来像你不会使用的那些。

我也有同样的问题因为我认为我只需要使用几个Jars,但事实证明它们都依赖于该zip文件夹中其他jar的类。

答案 1 :(得分:0)

我遇到了这个问题,因为我的pom文件中同时有kie-apikie-ci作为依赖项。我删除了kie-ci依赖项,并且不再遇到此问题。