java - Axis2 接收 MTOM 附件未发现数据处理程序错误

标签 java soap apache-axis soapui mtom

对于一个项目,我正在使用 Apache Axis2 1.6.2 实现 SOAP 服务。我有一项服务需要使用 MTOM 接收文件。但遗憾的是我在接收 MTOM 附加文件时一直遇到问题。我不断收到异常:

org.apache.axiom.om.OMException: A data handler was not found for content id cid:491414508823

...

我尝试在网络上搜索答案,但没有成功。我希望有人能让我走上正确的方向。我的 wsdl 包含以下代码片段:

...
<xs:element minOccurs="0" name="PDF_Attachment">
  <xs:complexType>
     <xs:all>
         <xs:element minOccurs="0" name="PDF_AttachmentName" type="xs:string"/>
         <xs:element name="PDF_AttachmentContent" type="xs:base64Binary"/>
     </xs:all>
   </xs:complexType>
</xs:element>
...

我使用 SoapUI 生成请求并将属性“use MTOM”设置为 true。

有谁遇到过同样的问题或者知道如何解决吗?非常感谢您的帮助!

理查德

更新

我想我已经解决了这个问题。问题出在我的 xsd/wsdl 定义范围内。我使用 jaxb 将外部 xsd 中定义的业务对象转换为带有 JAXB 注释的 POJO。但 xs:base64Binary 被转换为 byte[]。更改 xsd:

<xs:schema ... xmlns:xmime="http://www.w3.org/2005/05/xmlmime"> ...

并将元素更改为:

<xs:element name="PDF_AttachmentContent" minOccurs="1" maxOccurs="1" type="xs:base64Binary" xmime:expectedContentTypes="application/octet-stream">

JAXB 现在创建了一个 DataHandler 作为 getPDF_AttachmentContent 中的返回类型。我必须解决的唯一问题是允许 SOAPUI 发送 MTOM 附件。不知何故,我创建的测试客户端工作完美,但 SOAPUI 不发送附件...

上述解决方案的来源:http://cxf.apache.org/docs/mtom-attachments-with-jaxb.html

更新2: http://ssagara.blogspot.nl/2012/03/test-axis2-jax-ws-mtom-service-using.html使用 MTOM 解决了我的 SOAPUI 问题。我没有在我的 SOAP 消息中编辑正确的 cid。我以为 SOAPUI 会帮助我完成这件事,但事实并非如此。

最佳答案

解决方案的详细信息在上面的原始消息中。使用以下两个网站解决了这些问题:

  1. 数据处理程序问题:http://cxf.apache.org/docs/mtom-attachments-with-jaxb.html
  2. SoapUI 问题:http://ssagara.blogspot.nl/2012/03/test-axis2-jax-ws-mtom-service-using.html

我希望这对你们中的一些人有帮助。

关于java - Axis2 接收 MTOM 附件未发现数据处理程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11502645/

相关文章:

java - 为什么 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 和 TLS_RSA_WITH_3DES_EDE_CBC_SHA 被认为是 "weak"但被 nmap 和 Liberty 报告为 "strong"?

java - PriorityExecutor 和 ExecutorCompletionService 可以吗?

maven - Felix 1.4.0 OSGi 中的 Axis2

java - axis2 服务器和 Android 应用程序之间传递的复杂类型

java - 在 JavaFX 中的 Pane 之间切换

java - 服务器端 Java - 从哪里开始

php - 使用具有多个 namespace 的 SimpleXML 解析 XML

java - JOOQ 对 Axis2 Web 服务的支持

java - 为什么 SOAP 请求在 Eclipse WSE 中正确返回 RESPONSE,但在使用 Postman 时却不能?

web-services - 将 SOAP 转换为 REST