1

WSO2 のシーケンスで transport.vfs.FileURI の値を取得する方法はありますか? たとえば、私はこのようなプロキシ vfs を持っています

  <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
  <parameter name="transport.PollInterval">15</parameter>
  <parameter name="transport.vfs.MoveAfterProcess">file:///opt/temp/</parameter>
  <parameter name="transport.vfs.FileURI">file:///opt/IDM/</parameter>
  <parameter name="transport.vfs.ContentType">application/xml</parameter>

次に、transport.vfs.FileURI の値をシーケンスで取得したいと思います。おそらく次のようなものです。

  <property xmlns:ns="http://org.apache.synapse/xsd"
  name="fileuri"
  expression="fn:concat('uri : ',get-property('transport', 'FILE_URI'))"
  scope="default"
  type="STRING"/>

WSO2 シーケンスでこのようなことを行うことはできますか?

ありがとう :)

4

2 に答える 2

1

いいえ、そうではありません。プロキシでは、サービス レベル パラメータとして設定されます。そのため、一連のプロキシで同じ値のプロパティを設定し、そのプロパティへのアクセスを再試行する必要があります。しかし、これは、axis2 serviceMessagecontext にアクセスし、サービス レベル パラメータを読み取るクラス メディエータを使用して実現できると思います。(確かではありませんが)

于 2013-07-10T05:29:07.480 に答える
1

これも私の問題だったので、上記の答えを理解しようとしましたが、@Ratha のこのコメントから見つけたものをここに書きます。クラス メディエーターのサービス パラメーターにアクセスするには、axis2 メッセージ コンテキストを取得し、その名前でパラメーターの値を取得するだけです。これが私が使用したコードであり、いわゆるリンクにあったもののコピーです。

//These three lines are for getting Service Parameters from the axis2 message context.
        org.apache.axis2.context.MessageContext axis2MessageContext;
        axis2MessageContext = ((Axis2MessageContext)context).getAxis2MessageContext();

        System.out.println("Service Parameter name: "
                + axis2MessageContext.getParameter("parameterName").getValue());    

この点で、メッセージ コンテキスト プロパティと混同してはいけないと言うのは良いことだと思います。メッセージ コンテキスト プロパティは、wso2 esb デザイナーのプロパティ メディエーターで追加できるものです。

于 2014-01-05T16:03:05.577 に答える