是否需要为客户端和服务器代码指定 MTOM
Does MTOM needed to be specified for both the client and server code
我刚刚开始使用 SOAP Web 服务,偶然发现了 MTOM。
我需要根据以下用例了解两件事:
用户将通过传递图像来调用 SOAP Web 服务。作为回应,他们将获得同一图片的格式化版本。
- 我知道我需要在客户端中设置 setMTOMEnabled(true) 但我是否也必须在服务中提及它。另外,当生成 WSDL 时,我如何判断此服务使用 MTOM?
- 当客户端发送二进制数据时,客户端代码中必须提到 MTOM,但是如果客户端发送文本数据而服务器发送二进制数据,那么客户端是否也必须使用 MTOM?
我会在收集更多信息并更新此答案时进一步详细说明,但关于问题一“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 Type Java Type
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
所以关于你的第二个问题,我认为文本仍将被视为附件,但类型为 text/plain
我刚刚开始使用 SOAP Web 服务,偶然发现了 MTOM。
我需要根据以下用例了解两件事: 用户将通过传递图像来调用 SOAP Web 服务。作为回应,他们将获得同一图片的格式化版本。
- 我知道我需要在客户端中设置 setMTOMEnabled(true) 但我是否也必须在服务中提及它。另外,当生成 WSDL 时,我如何判断此服务使用 MTOM?
- 当客户端发送二进制数据时,客户端代码中必须提到 MTOM,但是如果客户端发送文本数据而服务器发送二进制数据,那么客户端是否也必须使用 MTOM?
我会在收集更多信息并更新此答案时进一步详细说明,但关于问题一“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 Type Java Type
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
所以关于你的第二个问题,我认为文本仍将被视为附件,但类型为 text/plain