2017-11-06 19 views
0

私たちはSOAP apisを管理するためにwso2 api manager(2.1.0)を使用しています。 Webサービスの応答メッセージには、コンテンツタイプ "application/dime"があります。 axis2.xmlを変更して、そのコンテンツタイプでバイナリリレー(ビルダーとフォーマッタ)を使用します。バイナリリレーは、wso2 EIおよびwso2 APIマネージャーでSOAPメッセージを展開しません

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

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

応答SOAPメッセージが展開されますので、我々はWSO2エンタープライズインテグレータ(6.1.1)と同じ動作を見て、この

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

のような返信用封筒を持っていません。

apiマネージャまたはエンタープライズインテグレータでレスポンスSOAPメッセージの拡張を有効にするために必要な設定はありますか? 他に何かしますか?

答えて

0

このシナリオでは、APIMが正常に動作しています。コンテンツタイプのバイナリフォーマッタを設定しました。したがって、APIM、ESBはペイロードをバイナリコンテンツとして扱い、同じバイナリコンテンツを石鹸封筒の中に渡します。

"application/dime"というコンテンツタイプに適したフォーマッタとビルダーを定義する必要があります。メッセージビルダとフォーマッタの仕組みについては、[1]を参照してください。あなたのタイプに適したフォーマッタとビルダーを特定してください。

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

+0

私はWSO2 ESB 5.0.0.0と同じ構成を試してみましたが、すべてが完璧に動作します。 SOAPエンベロープがバイナリフィールドから拡張されました。最近の製品では、SOAPエンベロープは拡張されておらず、SOAPエンベロープを含むバイナリフィールドは拡張されていないと言われているように、ESB 5.0.0とEI 6.1.1(およびAPIM 2.1.0)の間で動作が変更されたようですバイナリが返されます。 –

+0

私はWSO2 API Manager 2.0.0と同じ設定を試してみました。 APIマネージャとEnterprise Integratorの最新バージョンでは問題が限定されているようです。 –

関連する問題