2010-06-17 64 views
0

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

請幫忙。你能指出我朝着正確的方向創建一個用戶友好的業務規則嗎?

謝謝。

Ĵ

回答

1

我不太熟悉,你想用它來創建一個知識會話的方法,但我會表現出什麼在我的應用程序使用的例子。

KnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase(<KnowledgeBaseConfiguration>); 
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); 
kbuilder.add(ResourceFactory.newClassPathResource("rules/myRuleFile.drl", getClass()), 
       ResourceType.DRL); 
kbuilder.add(ResourceFactory.newClassPathResource("rules/myDslFile.dsl", getClass()), 
       ResourceType.DSL); 
if (kbuilder.hasErrors()) { 
    System.err.println(builder.getErrors().toString()); 

} 
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); 

現在儘量讓你的用戶編寫規則文件的能力,具有內置的限制,你看着的Drools的Guvnor?(http://downloads.jboss.com/drools/docs/5.0.1.26597.FINAL/drools-guvnor/html_single/index.html)我沒有把它納入我的項目還,但已經研究它一點點。我認爲它可能提供您尋求允許用戶創建和編輯規則文件的功能。祝你好運!

+0

謝謝:)非常有幫助! – JJunior 2010-07-27 14:14:03