0

JRules 6 を使用しており、JRules API を使用してルールを実行しようとしています。

新しい IlrSessionRequest オブジェクトを作成し、ルールセット パスをそのコンストラクターに渡します。実行すると、ルールセット パスの構文エラーとXU.ERROR.10048のエラー コードが表示されて失敗します。グーグルはあまり助けを提供していません..

ルールセットのパスは何を参照していますか? XOM を含む jar ファイルへのパスを入力しましたが、気に入らないようです。

ルールセットのパスを見つける方法はありますか?

4

2 に答える 2

0

XU = eXecution Unit したがって、あなたの説明に基づいて、「JRules」はルールアプリでルールセットを見つけることができず、クラッシュするため、不平を言っていると言えます。
内部の jar ファイル (ruleapp) を開くと、「your ruleapp name」という名前のフォルダーが少なくとも 1 つ表示されます。その
中に「your ruleapp version」(おそらく「1.0」) という名前のフォルダーがあります。その中に「your ruleset name
」があります
。 「あなたのルールセットバージョン」
とその中にあなたのルール属性。
理にかなっていますか?

可能なルールセット パス:
1/ ruleappName/ruleappVersion/rulesetName/rulesetVersion
2/ ruleappName/rulesetName/rulesetVersion
3/ ruleappName/ruleappVersion/rulesetName
4/ ruleappName/rulesetName

注: バージョンはオプションです。指定しない場合は、デプロイされた最新バージョンが使用されます。

JRules (7.01 および 7.1) 用のヘルパーとファクトリのセット全体をコーディングしました。バージョン 6 では微調整が必​​要になる場合があります。興味がある場合はお知らせください。


基本的に、クエリ、ビジネス ルール、エクストラクタ、ルールセット、ruleapp、デプロイ、クエリに基づくルールセットの作成などを作成するための静的メソッドを含むRTSHelper および RESHelper ライブラリがあります。
実行後に RES から ruleapp を削除するなど、他にも多数あります。

于 2012-04-18T10:45:27.447 に答える
0

パスは、Rule Execution Server に表示されるのと同じ方法で指定する必要があります: /ruleApp/ruleSet パス情報なし。JRules 7.1 での使用例を次に示します。これは、JRules 6 では異なる動作をする場合があります。

String rulesetPath= "/" + "your_ruleApp" + "/" + "your_ruleset";
IlrSessionFactory factory = new IlrPOJOSessionFactory();
IlrSessionRequest request = factory.createRequest();
request.setRulesetPath(rulesetPath);
于 2012-04-18T09:26:13.367 に答える