如何标记SOAP服务';MTOM已启用';
这不是Java特有的问题,但让我们举一个Java示例:添加如何标记SOAP服务';MTOM已启用';,soap,wsdl,mtom,Soap,Wsdl,Mtom,这不是Java特有的问题,但让我们举一个Java示例:添加xmime:expectedContentTypes是Java世界的标准实践=“*/*到base64元素以启用服务器端的MTOM处理-它导致@xmlmetype注释,使用DataHandlers而不是字节数组等。当然,这一描述大大简化了,xmime:expectedContentTypes=“*/*在模式中看到时,开发人员(更重要的是,实现库)通常会将其视为“MTOM就绪”。从我从这些例子中收集到的信息来看,C#世界的情况也是一样的 但是
xmime:expectedContentTypes是Java世界的标准实践=“*/*
到base64元素以启用服务器端的MTOM处理-它导致@xmlmetype
注释,使用DataHandler
s而不是字节数组等。当然,这一描述大大简化了,xmime:expectedContentTypes=“*/*
在模式中看到时,开发人员(更重要的是,实现库)通常会将其视为“MTOM就绪”。从我从这些例子中收集到的信息来看,C#世界的情况也是一样的
但是,这对我来说毫无意义——该属性指定了XML中实际需要的数据类型,而不是它可以与MTOM一起使用。我还没有在任何RFC或SOAP1.1的类似文档中找到预期内容类型和MTOM之间的任何直接联系
我的问题可以用两种方式表达:
您似乎有点混淆了附件、SOAP附件和MTOM SOAP附件最初是在(不是规范)中引入的,并定义了对SOAP 1.1中定义的传输绑定机制的扩展。特别是,本说明规定: 将SOAP 1.1消息绑定到MIME多部分/相关消息中,以保留SOAP 1.1消息的处理规则。用于封装复合文档的MIME多部分机制可用于绑定与SOAP 1.1消息相关的实体,如附件 简单地说,它定义了一种机制,使多个文档(附件)使用多部分mime传输结构以其本机格式与SOAP消息相关联。这是通过使用和来解释由“Content Location”头引用的URI来实现的 此格式的SOAP消息可以可视化如下(封装为multipart/mime): 这也是您使用时可能使用的格式,但不再推荐使用,除非您使用的是遗留代码。W3C注释后来在2004年被修订为“特性”级别(与SOAP 1.2一起),并由SOAP MTOM机制进行修改 SOAP消息传输优化机制(MTOM)的官方定义不是一种机制,而是一种协同工作以提供功能的机制:
xmime:contentType
和xmime:expectedContentTypes=“application/octet stream
()启用MTOM时,生成的WSDL将有如下条目:
这是服务器声明它可以接收XML二进制优化包(可以分解为多部分MIME消息)的方式
当客户机看到上述情况时,客户机知道服务器可以接受XML二进制优化包,并根据定义生成适当的HTTP请求:
在类似MIME的系统中使用XOP文档时,使用“application/XOP+xml”媒体类型标识,并使用所需的“type”参数传递原始xml序列化的关联内容类型
希望有帮助