2011-07-14 73 views
3

我正在處理大量XML消息的企業架構中工作。最近,我們已經要求對這些XML消息中包含的數據執行一些計算,並在將消息從企業傳遞到外部使用者之前將一些結果添加到消息頭中。我們的架構基於JBoss SOA-P,我目前正在評估JBoss Drools 5.2.0執行這些消息操作。評估JBoss Drools中的XPath表達式

我知道我可以簡單地從XML中提取POJO,對其執行規則並添加相應的結果。但是,如果可能的話,由於模式的動態需求以及在將新編譯代碼部署到我們的生產環境中的重大障礙(閱讀繁文tape節),我想刪除XML消息結構的編譯時依賴關係。理想情況下,我希望對.drl規則中的原始XML使用XPath評估。一些搜索引發了SXC項目,這似乎正是我所需要的,但是關於如何使用它的信息很少,而且似乎自2007年以來一直處於休眠狀態。此外,它已根據Drools 4.0.4和I我需要使用5.2.0。

有誰知道在Drools規則中針對XML評估XPath表達式的好方法嗎?也歡迎XPath的替代方案,它允許在運行時在Drools規則中補償XML結構更改。

謝謝!

回答

2

我們有一位Drools專家來我們公司參觀我們的公司,並在不久前討論了Drools。我正在開發一個服務,其中有很多規則不斷變化,我們考慮使用Drools。

專家告訴我們使用代理對象來包裝我們需要的Drools數據。您可以嘗試使用代理對象,在該對象中將XML與一些方法一起使用。當Drools試圖評估代理對象時,它實際上評估你的XML。 這是一個小小的髒點 - 與Drools規範相比 - 因爲對象在進入Drools的工作內存時不會保存數據,而是在被問到時提取數據。

我並不是Drools的專家,但我所看到的唯一選擇是,像前面提到的那樣「水合POJO」,根據Drools規範,這是最好的。

+0

謝謝,我從來沒有想過這樣做過。如果我理解正確,我將只有一個包裝XML的POJO,並提供對它執行XPath的方法。這樣,POJO不需要知道關於XML結構的任何信息。我認爲這可能適用於我需要做的事情。 – DrewCo

+0

我們之前使用過「解決方法」。這並不漂亮,但我認爲它會做。讓我知道事情的後續 –