【发布时间】:2014-02-06 19:45:15
【问题描述】:
我们尝试使用全新的 KIE 工作台(以前称为 Guvnor)和新的基于 maven 的工件切换到 Drools 6。
现在我想使用第二张图片(“部署”)中this blog post 中描述的系统:通过 HTTP 从工作台存储库加载规则(虚线箭头,从左侧的 HTTP 直接进入应用程序)。
问题是,我不知道如何将工件加载到我的 KieServices/KieModule 对象中。我基本上不想用maven,我也不能全局提供maven的settings.xml的路径作为Java参数,所以这个选项没有了。
我认为类似的问题是this one。正如那里提到的,我也尝试加载一个 URL 资源,但问题似乎是系统无法确定给定 URL (http://localhost:8080/kie-drools/maven2/.../-1.0.0.jar) 是什么类型的 ResourceType。是的,我可以直接从浏览器访问存储库中的 .jar,无需身份验证。
任何想法或教程如何做到这一点?
我的测试代码:
public static void main(String[] args) {
KieServices ks = KieServices.Factory.get();
KieRepository repo = ks.getRepository();
String url = "http://localhost:8080/kie-drools/maven2/de/test/test/1.0.0/test-1.0.0.jar";
Resource urlResource = ks.getResources().newUrlResource(url);
KieModule kModule = repo.addKieModule(urlResource); // this already fails
}
错误:
Exception in thread "main" java.lang.RuntimeException: Unable to fetch module from resource :[UrlResource path='http://localhost:8080/kie-drools/maven2/de/itm/Herma400/1.0.1/Herma400-1.0.1.jar']
at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.getKieModule(KieRepositoryImpl.java:205)
at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.addKieModule(KieRepositoryImpl.java:161)
at kieTest.MainKieTest.main(MainKieTest.java:24)
Caused by: java.lang.NullPointerException
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.getPomProperties(ClasspathKieProject.java:197)
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.fetchKModule(ClasspathKieProject.java:148)
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.fetchKModule(ClasspathKieProject.java:109)
at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.getKieModule(KieRepositoryImpl.java:190)
... 2 more
提前致谢!
【问题讨论】:
标签: java maven drools drools-guvnor kie