我使用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