- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我将 JBoss AS 7.1.1.Final 与 KIE Workbench/Drools 6.0.1.、Java 和 Eclipse (Kepler) 一起使用。
我需要 KIE Workbench(以前称为 Drools Guvnor)让人们使用 Facts 和 Rules 以图形方式创建/编辑 jar,然后将其作为 jar 存储在本地 maven 存储库中。然后我想以编程方式访问这些 jar (以前称为 pkg)并将它们加载到我的 Drools 应用程序中。该应用程序甚至可以(尽管不是首选)在同一工作站上运行,因此可以访问存储库
a) 通过网址: http://localhost:8080/drools-wb-as7.0/maven2/com/myprojects/myProject/LATEST/myProject-LATEST.jar
b) 按文件路径/类路径:/my/folder/jboss-as-7.1.1.Final/bin/repositories/kie/com/myprojects/myProject/LATEST/myProject-LATEST.jar
我不想在我的代码中创建/编译规则等,既不动态地动态加载单个.drl文件——准备好的jar是我需要加载的, 和例如com.myprojects:myProject:LATEST 作为标识符。
我试试这个(根据文档)
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.newKieContainer(
ks.newReleaseId("com.myprojects", "myProject", "LATEST"));
KieScanner kScanner = ks.newKieScanner( kContainer );
kScanner.start( 10000L );
KieSession kSession = kContainer.newKieSession("defaultKieSession");
kSession.insert( fact );
[...]
但是,这会因运行时异常而失败,
Exception in thread "main" java.lang.RuntimeException: Cannot find KieModule: com.myprojects:myProject:LATEST
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:86)
at com.myprojects.myproject.KieDroolsWBOnlinePuller.code(KieDroolsWBOnlinePuller.java:118)
at com.myprojects.myproject.KieDroolsWBOnlinePuller.main(KieDroolsWBOnlinePuller.java:40)
我的问题是:为什么找不到来自 repo 的 jar?当我在 KIE WB 中创建它时,KieModule 不是在 repo 中自动表示 jar 和 jar 吗?或者我必须更改 Maven Repo 的默认 ReleaseID,它用
打印出来KieRepository repo = ks.getRepository();
repo.getDefaultReleaseId()
决心
org.default:artifact:1.0.0-SNAPSHOT ?
是 Maven 问题吗?我哪里错了?
这里是 jars pom.xml 的内容
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myprojects</groupId>
<artifactId>myProject</artifactId>
<version>LATEST</version>
<name>myProject</name>
<repositories>
<repository>
<id>guvnor-m2-repo</id>
<name>Guvnor M2 Repo</name>
<url>http://localhost:8080/drools-wb-as7.0/maven2/</url>
</repository>
</repositories>
</project>
我还尝试过使用这段代码通过 URL 加载 jar:
KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId("com.myprojects", "myProject", "LATEST");
KieResources kres = ks.getResources();
String url = "http://127.0.0.1:8080/drools-wb-as7.0/maven2/com/myprojects/myProject/LATEST/myProject-LATEST.jar";
kres.newUrlResource( url );
KieContainer kContainer = ks.newKieContainer(releaseId);
KieSession kSession = kContainer.newKieSession("statelessDefautlKnowledgeSession");
[...]
这失败了同样的异常....有什么想法吗?
我目前阅读的一些资源(无法发布其他 6 个):
最佳答案
在我的例子中,事实证明
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-ci</artifactId>
</dependency>
在我的 POM 中丢失了
关于java - 为什么将 Drools 6 KIE JAR 加载到代码中会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20995133/
Drools中物理包和包声明有什么用。 例如, 我有一个规则,物理包com.mycompany中的Myrule.drl 据我所知,drools 中的包声明不依赖于文件所在的实际物理包。 所以我可以将
我是 drools 的新手,并且熟悉使用 extends 关键字来继承规则。问题有没有办法继承多个规则?这类似于在 java 类上使用多个接口(interface)。这是我希望它如何工作的示例,但我在
我们使用 Drools 作为解决方案的一部分,在非常密集的处理应用程序中充当一种过滤器,可能在 500,000 多个工作内存对象上运行多达 100 条规则。 事实证明它非常慢。 其他人有在批处理类型处
我是 Drools 的新手,正在尝试让示例程序正常工作。drools 文档 http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert
我正在使用 drools-camel-server 5.4 Final 来执行从 jboss AS7 上的 guvnor 获取的规则,如下所示: 如何重新加载或重建知识库
我想将我的 .drl 文件预编译为 .class 文件,这样它们就不必在运行时编译。文档使它听起来像 kie-maven-plugin 这样做,但它没有为我生成任何东西。它编译规则文件但不输出任何内容
我正在尝试使用 Drools 向后链接来找出需要哪些事实才能将对象插入到工作内存中。在下面的示例中,我期望得到事实“go2”。 rule "ins a" when String( this =
是否可以通过规则名称触发 drool 文件中的规则?我的要求是,我的规则文件将包含所有规则的列表 (S)。但我有一个单独的配置,其中包含要触发的规则名称列表 (A)。注意 (A) 是 (S) 的子集。
我的项目使用 drools 专家手段 (DRL) 文件。在规则文件中,如果用户想删除和更新规则,应该怎么办? 规则文件: package com.sample; import com.sample.T
我被要求开始探索用于某些客户端演示的 Activiti 工具。 该演示还将包含与 Activiti 集成的 JBoss Drools。 我对这两种工具和业务流程世界都不熟悉,所以如果问题很愚蠢,请原谅
Ciao,我已经测试了几种方法,但我仍然无法在Drools Fusion中测试和验证事件过期机制,所以我正在寻找一些指导,好吗? 我已经阅读了手册,我对这个功能很感兴趣: In other words
我试图在 Drools 6.5 中创建两个独立的规则组,但我无法弄清楚规则流组和议程组策略的用例是什么。他们两个看起来很相似。 最佳答案 阅读文档... 2.6.4. RuleFowGroup 和 A
我是 Drools 新手。我正在创建规则,但出现编译时错误 "field is not visible'. 我尝试检查 Jboss 示例,其中使用方言“mvel”。它编译了。我听不懂方言。那么 dia
我正在尝试设置 kie 执行服务 (kie-server-services-6.2.0) 以供 kie-drools-wb-webapp-6.2.0 提供,当我尝试通过以下 webapp url执行服
我想实现规则引擎,其中如果仅执行一个条件,则它不会检查其他指定的条件。 rule "Print out lower-case tokens" when Token ( coveredText
我拥有所有必需的 JAR。尽管面临以下问题: java.lang.ClassCastException: org.drools.io.impl.ClassPathResource cannot be
我正在尝试 Redhat Drools,并且能够在 WildFly 环境中部署 Drools Workbench。我试图找出如何将规则公开为服务,但找不到关于如何做到这一点的文章。这是对 Drools
在使用 Drools 5.5 final 比较字符串值字段时,我遇到了一些令人费解的问题。 本质上,我试图找出是否有一对同名的人。 Person 类如下所示: public class Person
我正在寻找一个好的规则引擎。 我已经看到它存在两个好的项目:JBPM和Drools。 我不太了解两者之间的区别,也不知道要使用什么理想工具。 请您向我提供更多信息以及您在其他方面的经验,以及您认为最适
我们可以在 Excel 表格中编写 Drool 规则吗?规则可以用于简单的人类可读内容吗?如果我们可以,那该怎么做呢?请解释。 最佳答案 是的,你可以。阅读用户指南中名为“电子表格中的决策表”的部分如
我是一名优秀的程序员,十分优秀!