是否需要为客户端和服务器代码指定MTOM

时间:2018-01-31 14:58:42

标签: java web-services jax-ws mtom

我刚刚开始使用SOAP Web服务,偶然发现了MTOM。

我需要根据以下用例了解两件事: 用户将通过传递图像来调用SOAP Web服务。作为回应,他们将获得相同图像的格式化版本。

  1. 我知道我需要在客户端设置MTTnabled(true),但是我也必须在服务中提及它。此外,当生成WSDL时,如何判断此服务是否使用MTOM?
  2. 当客户端发送二进制数据时,必须在客户端代码中提及MTOM,但如果客户端发送文本数据而服务器发送二进制数据,那么客户端是否也必须使用MTOM?

1 个答案:

答案 0 :(得分:1)

我会进一步详细说明,因为我收集了更多信息并更新了这个答案,但在问题1和#34; JAX-WS应用程序需要单独配置客户端和服务器工件以启用MTOM支持"和" WSDL文件包含二进制数据的xsd:base64Binary或xsd:hexBinary元素定义。"它也可能包含" xmime:expectedContentTypes"

在第二部分,我相信这回答了你的问题" JAX-WS应用程序需要单独配置客户端和服务器工件以启用MTOM支持"

但是,再次,仍在为你检查。

更多关于您在WSDL中看到的内容的示例

<xs:complexType name="ImageDepot">
    <xs:sequence>
        <xs:element name="imageData" type="xs:base64Binary" xmime:expectedContentTypes="image/jpeg"/>
    </xs:sequence>
</xs:complexType>
........
</types

MIME类型和Java类型的映射。描述MIME类型和Java类型之间的映射。

  

MIME类型 Java类型

     

image / gif - java.awt.Image

     

image / jpeg - java.awt.Image

     

text / plain - java.lang.String

     

text / xml - javax.xml.transform.Source

     

application / xml javax.xml.transform.Source

     

/ javax.activation.DataHandler

所以关于你的第二个问题,我认为文本仍然会被认为是一个附件,但会有文字的类型/普通