0

私の WSO2 ESB プロキシ サービスは、さまざまな環境 (DEV、TEST、PROD) のさまざまな URL にあるエンドポイントを参照しています。WSO2 のドキュメントによると、エンドポイント定義を Governance Registry に保存し、各環境のエンドポイント XML ファイルの URL を変更する必要があります。これは、1 つまたは 2 つのプロキシを持つ組織ではうまく機能するかもしれませんが、10 以上のプロキシではかなりのオーバーヘッドになります。

もう 1 つのシナリオは、ESB シーケンスで特定の環境固有のプロパティを読み取る必要がある場合です。

外部の *.properties ファイルで一連のプロパティを定義し、ESB およびレジストリ定義内でそれらを読み取る方法はありますか?

4

2 に答える 2

7

次のようにスクリプト メディエーターを使用して、ESB シーケンス/プロキシ サービス内のシステム プロパティにアクセスできます。

    <script language="js">mc.setProperty("file.separator",java.lang.System.getProperty("file.separator"));</script>
    <log level="custom">
       <property name="file.separator" expression="get-property('file.separator')"/>
    </log>

ここで「file.separator」プロパティは、スクリプト メディエータ内のメッセージ コンテキストのプロパティとして設定され、後続のメディエータで使用できます。

ESB レジストリのファイルで定義されたプロパティにアクセスすることもできます。たとえば、構成レジストリ (test.xml) に次の内容のファイルがある場合、

<a>Helloo<b>World</b></a>

のテキスト要素 "World" に<b>は、次のようにプロパティ メディエーターを使用してアクセスできます。

<property name="test" expression="get-property('registry','conf:/test.xml')" scope="default" type="OM"/>
<log level="custom">
      <property name="test.b" expression="$ctx:test//b"/>
</log>
于 2013-03-07T07:23:18.760 に答える
0

これは、classmeditor からレジストリ リソースにアクセスする方法に関するブログ投稿です1。投稿に記載されているように、任意のリソースにアクセスして変更を加えることができます。

同様に、外部プロパティ ファイルを保持し、classmeditor からそれを読み取り、クラス meditaor を使用してシナプス メッセージ コンテキストですべてのプロパティを設定できます。

于 2013-03-07T07:16:29.323 に答える