WSO2 ESB将注册表文件传递到Custom Mediator中

时间:2014-03-25 14:45:44

标签: wso2esb drools kie

在WSO2 ESB注册表中,我有一个DRL文件

/opt/config/rules.drl

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

我想使用此文件使用带有Kie的自定义介体来解除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')"/>

我应该采取什么方法将注册表项传递给自定义调解器?

2 个答案:

答案 0 :(得分: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')" />

治理注册表

条目的上传和存储就像在配置注册表中一样。可以在注册表位置/_system/config/下访问它们,如下所示:

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

配置和治理注册表之间的主要区别似乎是配置条目应该是&#34;产品特定的&#34;治理条目是&#34;全球&#34;。这不是强制执行的。

答案 1 :(得分:0)