2011-07-14 9 views
3

大量のXMLメッセージを処理しているエンタープライズアーキテクチャ内で作業しています。私たちは最近、XMLメッセージに含まれるデータに対して何らかの計算を実行し、メッセージをエンタープライズから外部コンシューマに渡す前にメッセージヘッダーにいくつかの結果を追加するという要件を与えられました。私たちのアーキテクチャはJBoss SOA-Pに基づいており、現在はこれらのメッセージ操作を実行するためのJBoss Drools 5.2.0を評価中です。JBoss DroolsでのXPath式の評価

XMLからPOJOを単純に水分補給し、その上でルールを実行し、適切な結果を追加することができます。しかし、可能であれば、スキーマに関する動的要件と、新しいコンパイル済みコードを本番環境に展開する上での大きな障害(読み込み:赤いテープ)のために、XMLメッセージ構造のコンパイル時の依存関係を削除したいと思います。私は理想的には、.drlルールの生のXMLにXPath評価を使用することをお勧めします。一部の検索では、私が必要としているものと思われるSXCプロジェクトが公開されていましたが、それを使用する方法に関する情報はほとんどなく、2007年以来休眠中です。さらに、Drools 4.0.4とI 5.2.0を使用する必要があります。

誰でも、DroolsのルールでXMLに対してXPath式を評価する良い方法について知っていますか? XML構造の変更を実行時にDroolsルールで補うことができるXPathの代替も歓迎します。

ありがとうございます!

答えて

2

私たちは、Droolsについて私たちの会社を訪問し、短時間前にDroolsを取っている専門家を抱えていました。私は常に変化する多くのルールを持つサービスを開発しており、Droolsを使うことを考えました。

専門家は、Droolsに必要なデータをラップするためにProxy-Objectsを使用するように指示しました。 XMLをいくつかのメソッドとともに置くProxy-Objectを使うこともできます。 DroolsがProxy-Objectを評価しようとしているとき、あなたのXMLを評価しています。 Droolsのワーキングメモリに入力されたときにオブジェクトがデータを保持するのではなく、尋ねられたときにデータを抽出するので、これはDrools仕様と比較して、ちょっと汚いです。

私はDroolsの専門家ではありませんが、私が見る唯一の選択肢は、Droolsの仕様に従って、前述のように "POJOを水和"することです。

+0

ありがとうございました。私は前にこのようにすることは考えていませんでした。私が正しく理解していれば、XMLをラップし、XPathを実行するためのメソッドを提供するPOJOを用意します。このようにPOJOはXML構造について何も知る必要はありません。私はこれが私がする必要があるもののために働くかもしれないと思う。 – DrewCo

+0

以前に「回避策」を使用しました。それはかなりではありませんが、私はそれがすると思います。それがどうなるか教えてください –