2014-03-25 43 views
1

在WSO2 ESB註冊表我有一個DRL文件WSO2 ESB通註冊表文件到自定義的中保

/opt/config/rules.drl

rule "" 
when 
    ... 
then 
    ... 
end 

我想用這個文件來觸發的Drools使用自定義的調解員紀伊

規則

DroolsMediator.java

class DroolsMediator extends AbstractMediator { 
    public boolean mediate(MessageContext context) { 
     KnowledgeBuilder builder... 
     URL url = new URL("path/to/registry/rules.drl"); 
     builder.add(ResourceFactory.newUrlResource(url), ResourceType.DRL); 
     ... 
    } 
} 

我試圖得到一個屬性,但沒有成功:

<property name="REGISTRY-VALUE" 
      expression="get-property('registry', '/opt/config/rules.drl')"/> 

我應該好好地傳遞註冊表項爲自定義中介什麼辦法?

回答

1

的問題是沒有這麼多的代碼,因爲它是與我在那裏放置WSO2註冊表內的資源。

的WSO2內,有種註冊表:

本地註冊表

條目存儲在本地文件系統,訪問如下:

<localEntry key="Drools" src="/path/to/rules.drl" /> 

這些都可以只能由ESB在與資源相同的機器上訪問。

配置註冊表

參賽作品上傳至WSO2 ESB和實際存儲在數據庫中,而不是文件系統。他們可以在註冊表中的位置/_system/config/下如下訪問:

<property name="Drools" expression="get-property('conf:/path/to/rules.drl')" /> 

治理註冊表

條目被上傳並存儲就像在配置註冊表。

<property name="Drools" expression="get-property('gov:/path/to/rules.drl')" /> 

配置和管理登記處之間的主要區別似乎是而治理項目是「全球性」是配置條目應該是「特定產品」:他們可以在註冊表中的位置/_system/config/下如下進行訪問。這不是強制執行的。