2017-11-06 5 views
0

Wir verwenden Wso2 Api-Manager (2.1.0), um unsere SOAP-API zu verwalten. Die Antwortnachricht eines Webservices hat den Inhaltstyp "Anwendung/Groschen". Wir ändern axis2.xml, um Binärrelay (Builder und Formatierer) mit diesem Inhaltstyp zu verwenden.Binary-Relay nicht erweitern SOAP-Nachricht in Wso2 EI und Wso2 API-Manager

<messageFormatter contentType="application/dime"       
    class="org.wso2.carbon.relay.ExpandingMessageFormatter"/> 

<messageBuilder contentType="application/dime" 
    class="org.wso2.carbon.relay.BinaryRelayBuilder"/> 

Die Antwort SOAP-Nachricht wird nicht erweitert, so haben wir eine Rückumschlag wie diese Wir

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soapenv:Body> 
    <ns:binary xmlns:ns="http://ws.apache.org/commons/ns/payload">DCAAAAApACkAAAJxdXVpZDo3MTRDNk...U9GCgA=</ns:binary> 
</soapenv:Body> 
</soapenv:Envelope> 

das gleiche Verhalten mit WSO2 Enterprise Integrator sahen (6.1.1).

Gibt es irgendeine Konfiguration, die wir tun müssen, um das Erweitern der Antwort-SOAP-Nachricht in einem API-Manager oder einem Unternehmensintegrator zu ermöglichen? Würden wir etwas anderes machen?

Antwort

0

Das APIM funktioniert in diesem Szenario wie erwartet. Sie haben die binären Formatierer für Ihren Inhaltstyp festgelegt. Also APIM, ESB behandeln Ihre Payload als binären Inhalt und übergeben den gleichen binären Inhalt in einem Soap-Envelope.

Sie müssen den korrekten Formatierer und Ersteller für Ihren Inhaltstyp "application/dime" definieren. Siehe [1] zur Funktionsweise von Message Builders und Formatierern. Identifizieren Sie den richtigen Formatierer und Builder für Ihren Typ.

[1] - https://docs.wso2.com/display/ESB500/Working+with+Message+Builders+and+Formatters

+0

habe ich versucht, die gleiche Konfiguration mit WSO2 ESB 5.0.0.0 und alles funktioniert perfekt. Die SOAP-Hülle wurde vom Binärfeld erweitert. Es scheint, dass sich das Verhalten zwischen ESB 5.0.0 und EI 6.1.1 (und APIM 2.1.0) geändert hat, da ich mit den neuesten Produkten gesagt habe, dass die SOAP-Envelope nicht erweitert ist und das binäre Feld, das die SOAP-Envelope enthält, konvertiert binär, wird zurückgegeben. –

+0

Ich habe die gleiche Konfiguration mit WSO2 API Manager 2.0.0 versucht und es funktioniert. Es scheint, dass das Problem mit der letzten Version von API Manager und Enterprise Integrator begrenzt ist. –