DroolsプラグインでEclipseを使用してルールを作成しています。私はビジネスルールを作成したいと思っています。主な目的は、ユーザーがルールを作成するために使用できる一連のオプションをユーザーに提供することです。例:Appleが3色しか持てない場合:ユーザーが自分のルールで使用できるオプションを事前に知ることができるように、ドロップダウンなどのオプションを提供したいと思います。出来ますか?dslを作成していますが、ビジネスルールに上記の機能を提供できません。基本的なdslの実装でもエラーが発生します。dslを追加するコードは、私のRuleRunner class()では次のとおりです。
InputStream ruleSource = RuleRunner.class.getClassLoader()。getResourceAsStream( "/ Rule1.dslr");
InputStream dslSource = RuleRunner.class.getClassLoader()。getResourceAsStream( "/ sample-dsl.dsl");
//DSLを使用してルールをロードします
addRulesToThisPackage.addPackageFromDrl(new InputStreamReader(ruleSource)、new 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ステータスがBステータスを変更する」
when
There is an A
- has an address
There is a B
- has name
then
- print updated A and Aaddress
終わり
私はEclipseでDSLを作成しました。
パッケージにロードするために追加したコードは正しいですか?または私は何かが欠けていますか????
私のプログラムはDSLを見つけることができないようですか?
助けてください。ユーザーフレンドリーなビジネスルールを作成するための正しい方向を教えていただけますか?
ありがとう。
J