0

メッセージを処理するための DSL を作成しようとしています。エラーを引き起こす以下のもので動作するいくつかの構成があります-

DSL から - [consequence][]フィールド {bit} の検証失敗時、フィールド {bit2} を "{field_value}"=System.out.println("Test") に設定します。

DSLR で - フィールド 2 の検証に失敗した場合、フィールド 39 を「181」に設定します

奇妙なことに、以下は問題なく動作します

DSL から - [結果][] フィールド {bit} の検証失敗時、フィールド {bit2} を {field_value} に設定 = System.out.println("Test");

DSLR の場合 - フィールド 2 の検証に失敗した場合、フィールド 39 を 181 に設定します (「field_value」の二重引用符が削除されていることに注意してください)

私は何か間違ったことをしていますか?. Drools 5.4.0 Final を使用しています。

ありがとう!

Rule Compilation error : [Rule name='handle authorization transactions for validation failures'] defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (21:1344) : on cannot be resolved to a type defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (21:1358) : Syntax error on token "失敗"、 ; 予想される defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (21:1366) : 型に解決できません 重複するローカル変数フィールド defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (21:1375): トークン「2」の構文エラー、; expected defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1450) : on cannot be resolved to a type defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1453) : Duplicate local variable validation defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1464) : Syntax error on token "失敗"、 ; 予期される defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1472) : of cannot be resolved to a type defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1475) : Duplicate local variable field defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (22:1481) : Syntax error on token "3", ; expected defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1556) : on cannot be resolved to a type defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1559) : Duplicate local variable validation defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1570) : Syntax error on token " 重複するローカル変数フィールド defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1587): トークン「4」の構文エラー、; 期待される 重複するローカル変数フィールド defaultpkg/Rule_handle_authorization_transactions_for_validation_failures_bea353bc1d7c4114aa7fb7548bcc7b83.java (23:1587): トークン「4」の構文エラー、; 期待される

4

1 に答える 1

0

drools は再帰的にルールを適用しているようです! [consequence][] フィールド {bit} の検証失敗時に DSL にエントリがあり、フィールド {second_bit} を "{val}"=... に設定しました。

しかし、このような別のものもありました-[結果] []フィールド{ビット}を「{フィールド値}」に設定= ...

そのため、drools は最初のエントリの最後の部分を 2 番目のエントリの RHS に一致させました。drools.dump.dir オプションのおかげで、何が起こっているのかを確認できました!

于 2012-07-27T09:01:10.793 に答える