1

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')"/>

レジストリ項目をカスタム メディエーターに渡すには、どのようなアプローチを取る必要がありますか?

4

2 に答える 2

1

問題はコードではなく、WSO2 レジストリ内でリソースを配置する場所にありました。

WSO2 内には、次の3種類のレジストリがあります。

ローカル レジストリ

エントリはローカル ファイルシステムに保存され、次のようにアクセスされます。

<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')" />

構成レジストリとガバナンス レジストリの主な違いは、構成エントリは「製品固有」であるのに対し、ガバナンス エントリは「グローバル」であることです。これは強制されません。

于 2014-04-10T15:15:35.017 に答える