打包为包含另一个drools项目的jar的Java项目作为依赖项无法启动

时间:2015-07-03 03:30:12

标签: maven spring-boot drools

我有一个名为' controller'的maven Spring-boot项目,它有另一个项目' webservices'作为依赖。 ' web服务'是一个Drools项目(kmodule.xml位于webservices项目中的src / main / resources / META-INF /文件夹中)。 现在,当我从Eclipse启动控制器项目时,它工作正常。但是,当我将它打包为jar,并尝试使用java -jar controller.jar启动它时,它会说找到kmodule:jar:file:controller-0.1.jar!/lib/webservices-0.1.jar!/ META- INF / kmodule.xml并在此之后卡住。它不会抛出任何错误。但它也没有开始。 这有什么不对?它能够找到kmodule文件,所以这不是问题。为什么不开始? ===============更新================= 它正在开始,但它需要将近半个小时才能完成。早些时候,我将webservices作为一个单独的项目,它过去大约需要3分钟。然而它曾经在同一步骤停留约2分钟。现在,半小时后,我得到这个日志: o.d.c.k.b.i.KieRepositoryImpl - 添加了KieModule:ZipKieModule [ReleaseId = controller:0.1file = Desktop / controller-0.1.jar] 然后立即开始。 ==============更新2 ================= 我尝试将kmodule.xml和规则文件移动到"控制器" project,在控制器中构建KSession对象,然后将其传递给webservices项目。现在还需要半小时。 这是我的项目结构: 调节器   | __ src / main / java   | __ src / main / resources          | __规则                | __ mypkg1                      | __ rules1.drl                | __ mypkg2                      | __ rules2.drl          | __ META-INF                | __ kmodule.xml 我的kmodule.xml文件如下: <?xml version =" 1.0"编码=" UTF-8"> < kmodule xmlns:xsi =" http://www.w3.org/2001/XMLSchema-instance"     的xmlns =" HTTP://jboss.org/kie/6.0.0/kmodule">     < kbase name =" Kbase1"包=" rules.mypkg1.rules">         < ksession name =" abc"类型="无国籍" />     < / kbase>     < kbase name =" Kbase2"包=" rules.mypkg2.rules">         < ksession name =" xyz"类型="无国籍" />     < / kbase> < / KMODULE> 从控制器,我调用webservices中的一个类,它使用drools。这就是我在使用drools的webservices项目中调用类的方法: public class ControllerClass {     StatelessKieSession kSession;     KieServices kieService;     KieContainer kContainer;     public ReturnsController(){         kieService = KieServices.Factory.get();         kContainer = kieService.getKieClasspathContainer();     }     public void callWebservices(String kSessionName){         kSession = kContainer.newStatelessKieSession(kSessionName);         WebservicesClass wc = new WebservicesClass();         wc.callDroolsMethod(kSession);     } } 规则文件很短,每个文件最多包含10条规则。直接从webservices项目启动drools引擎只需要大约3分钟。控制器项目本身很轻,所以我怀疑是因为内存问题。 谢谢。

0 个答案:

没有答案