2016-03-24 11 views
0

非常に簡単な質問です。私はvanilla wso2esb 4.9.0を使用しており、デッドレターのチャンネルデザインを試しています。それは失敗する!キューに保管されているメッセージは、エンドポイントから受信したSOAPエラーです。私は間違って何をしていますか?これは正しい仕事ですか?私は、次の午前の例は次のとおりです。outSequence内部などhttps://docs.wso2.com/display/IntegrationPatterns/Dead+Letter+Channelバージョン4.9.0ではwso2esbデッドレターチャンネルが動作しません

<proxy xmlns="http://ws.apache.org/ns/synapse" name="Proxy1" 
transports="https,http" statistics="disable" trace="disable" 
startOnLoad="true"> 
<target> 
    <inSequence> 
     <log level="full" /> 
    </inSequence> 
    <outSequence> 
     <log level="full"> 
      <property name="MSG" value="Response...." /> 
     </log> 
     <send /> 
    </outSequence> 
    <faultSequence> 
     <log level="full"> 
      <property name="MSG" value="++++++++++FAULT---------...." /> 
     </log> 
     <property name="target.endpoint" value="ReportDataTransferServiceEp" /> 
     <store messageStore="ReportMessageStore" /> 
    </faultSequence> 
    <endpoint> 
     <address uri="http://localhost:8080/TestSoapESB/webservices/ReportDataTransferService" /> 
    </endpoint> 
</target> 
<publishWSDL 
    uri="http://localhost:8080/TestSoapESB/webservices/ReportDataTransferService?wsdl" /> 
<description></description> 

答えて

0

、あなたは現在のメッセージが応答していないinSequence内で受信した初期メッセージであることを知って、faultSequenceでは、あなたが頼ることはできませんあなたがinSequenceの上部にそれを保存し、faultSequenceに店舗を呼び出す前に、それを復元する必要があります:

割引:

<enrich> 
    <source type="envelope" clone="true"/> 
    <target type="property" property="INPUT_MESSAGE"/> 
</enrich> 
初期メッセージが変わらないという事実上の

復元:

<enrich> 
    <source type="property" clone="false" property="INPUT_MESSAGE"/> 
    <target type="envelope"/> 
</enrich> 
+0

はあなたのジャン=ミシェルありがとうございます。これが問題を解決しました。さて、デッド・レター・チャンネルの例を更新して、他の人たちが同じトラップに陥らないようにする方法は不思議です。 –

+0

私は、Jiraを作成し、ドキュメントを更新するよう頼んでいると思います。https://wso2.org/jira/browse/ESBJAVA –

+0

完了:https://wso2.org/jira/browse/ESBJAVA -4515 –

関連する問題