0

Guvnor を使用してルール プロジェクトを構築しています。私の DSL の 1 つで、間違った操作に対する次の「結果」ステートメントがあります。

[when]Error "{message}"=throw new Exception( "{message}" );

DSL ルールを使用し、すべてのルールを DSL 文で記述すると、完全に機能します。ただし、ガイド付きエディターを使用すると、これは機能せず、検証では次のように表示されます。

[Error: unable to resolve method using strict-mode: org.drools.spi.KnowledgeHelper.throw()] [Near : {... throw new Exception( "...

この作品のために私が何をする必要があるか誰かが知っていますか?私のプロジェクトは非 IT 担当者によって使用されるため、これは重要です。

ありがとう。


Guided Editor によって生成されるソース コードは非常に単純です。

rule "exception test"
    dialect "mvel"
    when
        eval( true );
    then
        throw new Exception( "error message" );
end
4

1 に答える 1

3

問題は DSL 文の使用ではなく、'mvel'方言の使用にあります。Mvel は throw Exception 構文が気に入らないようです。'java'解決策は、代わりに方言を使用することです。

'java'そのためには、ルールに方言オプションを追加する必要があります。

ここに画像の説明を入力

残念ながら、私が覚えている限り、Guvnor には'java'デフォルトで方言を使用するためのグローバル設定はありません。

于 2013-10-08T10:25:40.010 に答える