2016-03-24 4 views
0

Sehr einfache Frage. Ich benutze Vanille wso2esb 4.9.0 und versuche den Dead-Letter-Kanal-Design. Es schlägt fehl! Die Nachricht, die in der Warteschlange gespeichert ist, ist der von dem Endpunkt empfangene Fehlerfehler. Was mache ich falsch? Das ist Arbeit richtig? Das Beispiel, das ich finden: https://docs.wso2.com/display/IntegrationPatterns/Dead+Letter+ChannelWso2esb Dead Letter-Kanal funktioniert nicht in Version 4.9.0

<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> 

Antwort

0

als innerhalb outSequence, wissen Sie, dass die aktuelle Nachricht die Antwort und nicht die ursprüngliche Nachricht innerhalb des inSequence empfangen, in der faultSequence, können Sie sich nicht darauf verlassen auf der Tatsache, dass die ursprüngliche Nachricht unverändert bleiben: Sie kann es an der Spitze der inSequence speichern müssen und wiederherstellen, bevor Speicher in faultSequence Aufruf:

speichern:

<enrich> 
    <source type="envelope" clone="true"/> 
    <target type="property" property="INPUT_MESSAGE"/> 
</enrich> 

wieder her:

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

Danke Jean-Michel. Dies wurde gelöst, um zu veröffentlichen. Jetzt frage ich mich, wie wir das Beispiel des Dead-Letter-Kanals aktualisieren können, damit andere nicht in dieselbe Falle geraten. –

+0

Ich denke, dass der beste Weg ist, ein Jira zu erstellen und die Dokumentation zu aktualisieren: https://wso2.org/jira/browse/ESBJAVA –

+0

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

Verwandte Themen