wso2 esb mtom附件

时间:2013-02-04 20:33:23

标签: proxy wso2 wso2esb mtom

我目前正在使用WSO2企业服务总线,一些基于cxf的webservices和mtom附件。

使用SoapUI(启用了MTOM),我将以下请求提交给一个后端服务:

     ...
     <incident>
         ....
        <attachmentList>
           <attachment>
              <contentID>cid:soapui32.png</contentID>
           </attachment>
        </attachmentList>   
     </incident>
     ...

启用MTOM原始数据

    ...
    <attachmentList>
       <attachment>
         <contentID>
          <inc:Include href="cid:soapui32.png" xmlns:inc="http://www.w3.org/2004/08/xop/include"/>
         </contentID>
       </attachment>
    </attachmentList>
    ...

    ------=_Part_0_22113723.1360006252844
    Content-Type: image/x-png; name=soapui32.png
    Content-Transfer-Encoding: binary
    Content-ID: <soapui32.png>
    Content-Disposition: attachment; name="soapui32.png"; filename="soapui32.png"
    ......

到目前为止,这么好。 现在,作为下一步,我为此Web服务创建了一个基于WSDL的代理服务(WSO2 ESB 4.5.1)。

    <proxy xmlns="http://ws.apache.org/ns/synapse" name="testService" transports="https,http" statistics="enable" trace="enable" startOnLoad="true">
     <target>
      <outSequence>
       <send/>
     </outSequence>
     <endpoint>
      <wsdl service="IncidentService" port="IncidentServicePort" uri="uri2myservicewsdl"/>
     </endpoint>
     </target>
     <publishWSDL uri="uri2myservicewsdl"/>
     <description></description>
    </proxy> 

在axis2.xml中将enableMTOM设置为true,为代理服务启用了MTOM。

如果我通过SoapUI使用相同的附件提交完全相同的请求,esb会将附件转换为内联内容(调试日志):

    DEBUG -  Starting Activation Handler invocation. Incoming Message: 
    ......
     <incident>
        <attachmentList>
           <attachment>
              <contentID>iVBORw0KGgoAAAANSUh.....</contentID>
           </attachment>
        </attachmentList>   
     </incident>
    .....
    </soapenv:Body></soapenv:Envelope>
    {org.wso2.carbon.activation.module.ActivationHandler}

我在哪里可以启用MTOM,以便代理不会将其转换为内联内容?

非常感谢提前。

解决方法

也许某人有兴趣,即使这只是一种解决方法:

我在axis2.xml(wso2 esb conf目录)中启用了MTOM和SwA附件。

只要我禁用了SwA并且只启用了MTOM,附件就不会再转换为内联内容了。

现在所有代理服务都禁用了SwA,但目前还可以。 我稍后再看看它,也许这是一个错误。

0 个答案:

没有答案