0

Drools を使用して Web アプリケーションを開発しています。drools ファイルはすべてデータベースに保存されます。いくつかのルールを変更した後、新しい KnowledgeBase を作成し、ルールから作成したパッケージを追加する必要があります。すべての KnowledgeBase を再生成するには非常に時間がかかるため、必要な KnowledgeBase 内のパッケージのみを更新する方法。たとえば、次のステップを作成します。

ユーザーがルールを編集し、適用ボタンを押します。その後、私は何かをします:

KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newReaderResource( Reader, getClass() ),ResourceType.DRL ); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );

ルール スクリプトのテキストをデータベースに保存し、Reader を使用して KnowledgeBuilder にパッケージを追加します 。 +a+データベース

ナレッジ ベースから名前でパッケージを削除し、再度追加しようとしましたが、成功しませんでした。ナレッジ ベースを更新するためにしなければならないこと。ユーザーがルールを編集して保存するたびに新しいナレッジ ベースを作成することはできません。ナレッジ ベースの一部を更新するために何らかのアクションを実行する必要があります。

助けてください。

4

2 に答える 2

0

私は、どのknowledgeAgentがchangeset.xml構成でのみ機能するかを読み、changeset.xmlで定義されたリソースをスキャンします

于 2012-04-11T15:40:24.990 に答える
0

drools ドキュメント内の knowledgeAgent について読みましたか? 私が覚えている限り、そのコンポーネントには、新しい変更を既存のナレッジ ベースにマージするロジックが含まれています。乾杯

于 2012-04-11T15:32:04.630 に答える