在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')"/>
我应该采取什么方法将注册表项传递给自定义调解器?
答案 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)