java - 使用 CXF 附加 SOAP 处理程序

标签 java soap cxf

我尝试使用 Apache CXF 附加带有 SOAP 处理程序的文件,但它不起作用。

我的例子在这里。

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 进行迁移)。

最佳答案

尽管代码看起来不错,但我相信您需要启用 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>

关于java - 使用 CXF 附加 SOAP 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38216547/

相关文章:

java - 为什么服务器端套接字在读取 "\n.\n"后没有收到消息

Java 规范实现 - 从那里获取正在实现的接口(interface)的导入

jaxb - "XXX is an interface and jaxb can' t 处理接口(interface)“仅在liferay上下文中出现错误

java - 如何使用 cxf-xjc-plugin 从多个 xsd 生成 pojos?

java - 为gridlayout中的JButton添加点击事件-JAVA

java - 用于列映射的 log4j2 模式布局不起作用

web-services - WSDL 能否指示 Web 服务的 SOAP 版本(1.1 或 1.2)?

第一次使用maven后出现Java.lang.NoClassDefFoundError?

delphi - HttpSendRequest 阻止 SOAP 调用

java cxf Web服务客户端中的java.lang.VerifyError : org. bouncycaSTLe.asn1.x500.X500Name