2017-02-01 8 views
1

受信メッセージ(ログに正しく表示されている)を格納し、ペイロードメディエータによって適切にマッピングするためにプロパティ "INC"を使用しています。WSO2でプロパティメディエーターを使用している間に値が不正になるESB

私はペイロードで取得しています修正構造は以下の通りです。(適切にマッピングされてきている)

その後、私は、このエンドポイントからの応答を取得するには、以下のように吹き出しメディエーターを使用しています。

LogTextを使用して応答を確認します。その後

以下のようにフィルタを追加:

<property name="INC" expression="get-property('IntRequest')" scope="default" type="STRING"/>

<property name="LogText" value="call response" scope="default" type="STRING"/>

<filter xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:platformFaults="urn:faults_2015_1.platform.webservices.com" source="//platformFaults:code/text()" regex="WS_CONCUR_SESSION_DISALLWD"> <then> <log level="full" separator=",*Fault in Call***"> <property name="REQUEST" expression="get-property('INC')" scope="default" type="STRING" /> </log> </then> <else/> </filter>

しかし、ここで私はそれが呼び出し応答」の値を示します。.. REQUESTの値になっておりません".. REQUESTの価値はどうやって得られますか?

+0

質問が不明です。あなたは 'IntRequest'という名前のプロパティを持っていますか? – Bee

+0

esbログを入れます。 –

答えて

1

<enrich> 
    <source clone="true" type="body"/> 
    <target property="Request_Message" type="property"/> 
</enrich> 

要求メッセージのボディを保存するためにエンリッチ媒介物を使用しようが、あなたはあなたの順序で「IntRequest」プロパティを定義しなかった

<log> 
    <property expression="get-property('Request_Message')" name="REQUEST"/> 
</log> 
0

プロパティを呼び出しますか?私はあなたの設定でそれを見つけることができませんでした。ログレベルをカスタムに変更すると、システムログのrequestの値がわかります。

関連する問題