我使用Eclipse和Drools插件来创建规则。 我想创建业务规则,主要目的是尝试为用户提供一组他可以用来创建规则的选项。 例如:如果Apple只能有三种颜色:我想提供一个下拉选项,以便用户可以事先知道哪些是他可以在规则中使用的选项。 这可能吗? 我正在创建一个dsl,但仍无法为业务规则提供上述功能。 我在执行基本的dsl时也有错误。 在我的RuleRunner类中添加dsl的代码如下所示()在Drools中创建DSL和业务规则的问题
InputStream ruleSource = RuleRunner.class.getClassLoader()。getResourceAsStream(“/ Rule1.dslr”);
InputStream dslSource = RuleRunner.class.getClassLoader()。getResourceAsStream(“/ sample-dsl.dsl”);
//加载规则,使用DSL
addRulesToThisPackage.addPackageFromDrl( 新的InputStreamReader(ruleSource),新的InputStreamReader(dslSource));
我的工作目录中有sample-dsl .dsl和Rule1.dslr。
遇到错误时加入DSL的包(最后一行)
错误堆栈:螺纹
异常 “主” 显示java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
at com.org.RuleRunner.loadRuleFile(RuleRunner.java:96)
at com.org.RuleRunner.loadRules(RuleRunner.java:48)
at com.org.RuleRunner.runStatelessRules(RuleRunner.java:109)
at com.org.RulesTest.main(RulesTest.java:41)
我的DSL文件有基于在线文档的基本映射。
我创建的DSL规则是:
膨胀采样dsl.dsl
规则 “A状态改变乙状态”
when
There is an A
- has an address
There is a B
- has name
then
- print updated A and Aaddress
结束
我在创建DSL蚀。
我添加的代码是否会加载到我的包中?或者我错过了什么?
这似乎是我的程序无法找到dsl?
请帮忙。你能指出我朝着正确的方向创建一个用户友好的业务规则吗?
谢谢。
Ĵ
谢谢:)非常有帮助! – JJunior 2010-07-27 14:14:03