使用CXF与SOAP Handler连接

时间:2016-07-06 04:56:18

标签: java soap cxf

我正在尝试使用Apache CXF将文件附加到SOAP Handler,但它不起作用。

我的例子就在这里。

https://github.com/emag-notes/cxf-soaphandler-demo

在此示例中,我使用SAAJ API附加文件。

https://github.com/emag-notes/cxf-soaphandler-demo/blob/master/server/src/main/java/cxf/soaphandler/AttachmentHandler.java#L49-L54

但是,SOAP消息响应只是一个SOAP信封,而不是多部分(不是 包括我附上的文件。

我错过了什么吗?此代码适用于Apache Axis2。

尽管我知道使用MTOM是最佳选择,但我现在想使用现有的代码AMAP(我正在从Axis2进行迁移)。

1 个答案:

答案 0 :(得分:1)

尽管代码看起来很好,但我相信即使您没有使用MTOM的完整功能,也需要使用MTOM。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:soap="http://cxf.apache.org/bindings/soap"
       xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

  <jaxws:server id="Downloader" serviceClass="cxf.soaphandler.Downloader" address="downloader">
    <jaxws:serviceBean>
      <bean class="cxf.soaphandler.Downloader">
      </bean>
    </jaxws:serviceBean>
    <jaxws:binding>
        <soap:soapBinding mtomEnabled="true" />
    </jaxws:binding>
  </jaxws:server>

</beans>