0

さまざまな場所をリッスンしているいくつかのプロキシを使用しています。ただし、開発中は、本番環境と同じURIを使用できません。URI(transport.vfs.File.URI)を外部で定義することは可能ですか?(多分ローカルエントリーまたは別のプロパティ?)

次の行は、実際のURIの外部定義をロードできるはずです。

<parameter name="transport.vfs.FileURI">get-property('myURI')</parameter>

完全なプロキシの例(機能していません):

<proxy xmlns="http://ws.apache.org/ns/synapse" name="getRN100xml"
statistics="disable" trace="disable" transports="vfs">
<target>
    <inSequence>
   <send>...</send>
    </inSequence>
</target>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.PollInterval">5</parameter>
<parameter name="transport.vfs.MoveAfterProcess">C:/WSO2/In/saved</parameter>
<parameter name="transport.vfs.FileURI">get-property('myURI')</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.xml</parameter>
<parameter name="transport.vfs.ContentType">application/xml</parameter>
<parameter name="transport.vfs.MoveTimestampFormat">yyMMddHHmmss</parameter>

4

2 に答える 2

1

プロキシ シーケンスで値を動的に設定する方法の例については、この投稿WSO2 ESB - プロキシ パラメーター (トランスポート) の動的値を確認できます。

于 2012-06-22T05:39:14.513 に答える
0

これを行う簡単な方法は、シーケンス テンプレートを作成し、そのテンプレートにパラメーターを設定することです。このテンプレートを inSequence の最初のアクションとして読み取ります。プロキシ定義は次のようになります。

<proxy xmlns="http://ws.apache.org/ns/synapse" name="getRN100xml"
statistics="disable" trace="disable" transports="vfs">
<target>
 <inSequence>
   <call-template target="transport_vfs_parameter_settings"/>
 <send>...</send>
/<inSequence>
</target>

テンプレートの定義は sg に見えます。お気に入り:

<template xmlns="http://ws.apache.org/ns/synapse" name="transport_vfs_parameter_settings">
   <sequence>
    <property xmlns:ns="http://org.apache.synapse/xsd" name="transport.vfs.FileNamePattern" expression="test.xml"></property>
    <property xmlns:ns="http://org.apache.synapse/xsd" name="transport.PollInterval" expression="15" scope="transport"></property>
    <property xmlns:ns="http://org.apache.synapse/xsd" name="transport.vfs.ActionAfterProcess" expression="MOVE" scope="transport"></property>
    <property xmlns:ns="http://org.apache.synapse/xsd" name="transport.vfs.FileURI" expression="//localhost/D:/Test/in" scope="transport"></property>
    <property xmlns:ns="http://org.apache.synapse/xsd" name="transport.vfs.MoveAfterProcess" expression="//localhost/D:/Test/processed" scope="transport"></property>
    <property xmlns:ns="http://org.apache.synapse/xsd" name="transport.vfs.MoveAfterFailure" expression="//localhost/D:/Test/failure" scope="transport"></property>
    <property xmlns:ns="http://org.apache.synapse/xsd" name="transport.vfs.ContentType" expression="text/xml" scope="transport"></property>
    <property xmlns:ns="http://org.apache.synapse/xsd" name="transport.vfs.ActionAfterFailure" expression="MOVE" scope="transport"></property>
   </sequence>
</template>

このように、プロキシ定義を別の環境に転送することは、別のテンプレートを使用することを意味します。当然、inSequence の先頭で値を決定できるパラメータのみを inSequence に設定できます。たとえば、replyFilename に応答メッセージ ID を含めたい場合は、outSequence に設定します。

于 2015-09-25T09:25:00.150 に答える