Tag: drools

Drools 6:为正在运行的KieSession添加规则

到目前为止,我无法找到最好的方法(意味着最小的开销)在Drools 6.0.0中向正在运行的KieSession添加规则并且仍然在KieSession中保留我的事实。 在Drools 5中,当KBase被更改时,KSession被更新了,但是由于我的规则不是在KieBase中创建的,因此Drools 6看起来并非如此。 有没有办法在不替换KieFileSystem中的整个KieModules或Jars的情况下完成它。 我认为应该有一个简单的方法。 你们有个主意吗? 问候

在Scala中实现具有原始类型的方法

我在Scala中使用Drools Planner(用Java编写)时遇到了问题。 Drools规划器中的一个接口声明为: public interface Score extends Comparable 但是另一个界面使用’Score’作为原始类型: public interface Solution { Score getScore(); 然后我想在Scala中实现这个接口: class MySolution extends Solution { def getScore: Score = … 我收到编译错误:Scala编译器不允许编写’def getScore:Score’。 当我尝试添加’Score [_]’或’Score [whatever]’编译器抱怨类型不兼容时。 我该怎么办?

直接从存储库加载Drools / KIE Workbench工件

我们尝试使用全新的KIE工作台(以前称为Guvnor)和新的基于maven的工件切换到Drools 6。 现在我想在第二张图片(“部署”)中使用本博文中描述的系统:通过HTTP从工作台存储库加载规则(虚线箭头,从左边的HTTP直接进入应用程序) 。 问题是,我不知道如何将工件加载到我的KieServices / KieModule对象中。 我基本上不想使用maven,我也无法全局提供maven的settings.xml作为Java参数的路径,所以这个选项已经出来了。 我认为这是一个类似的问题。 正如那里提到的,我也尝试加载一个URL资源,但问题似乎是系统无法确定给定URL的ResourceType是什么类型( http://localhost:8080/kie-drools/maven2/…/-1.0.0.jar )是。 是的,我可以直接从浏览器访问存储库中的.jar,无需身份validation。 任何想法或教程如何做到这一点? 我的测试代码: 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 […]