什么标准指定如何在WSDL中指示MTOM / XOP支持?

时间:2011-01-28 10:20:09

标签: web-services wsdl mtom xop

我将MTOM附件支持添加到Home Grown appserver中的现有Web服务支持中。 Web服务框架遵循与JavaEE5类似的模式,带注释的服务&对象自动公开为具有自动WSDL生成的WebService。

我已经进行了实际的解析和生成,但是我无法确定是否需要更新WSDL生成以向客户端指示MTOM是受支持和首选的。我一直在寻找有关如何表明MTOM支持的多个相互矛盾的标准,而我对现实世界中使用的内容感到茫然。

到目前为止,我发现:

据我所知,W3c似乎是XMLSoap的更高版本,但它们似乎在断言的不同命名空间中使用了不同的元素:

我也喜欢random forum post,这似乎表明Glassfish正在使用XML Soap。 W3C标准是草案,但似乎是2007年的正式草案。

有谁知道这些规格通常在使用中?或者在MTOM方面忽略WSDL是否常见?

1 个答案:

答案 0 :(得分:1)

由于这个问题已经破裂,所以我决定让其他人偶然发现这个问题。

似乎与原始帖子相关的W3C规范已停滞不前,因为它仍处于草案状态。还有一个用于WSDL2的W3C规范,它包含一个指示MTOM支持的特定属性,但WSDL2似乎没有在野外使用。

由于这一点以及Glassfish使用它的迹象,我选择了问题中链接的XmlSoap规范。但是我实际上并没有发现任何实际解释MTOM断言的工具或客户端,而是我遇到的客户端工具要求您明确指出它们是否应该MTOM对请求进行编码。所以包括这个断言似乎有点没用。

虽然有一个警告,但JAX-WS似乎没有使用MTOM断言,它确实使用PolicyAssertions来保证安全性。任何PolicyAssertions的存在意味着JAX-WS忽略任何显式指定的安全配置。因此,指定MTOM断言而不包括安全断言会阻止在以任何方式保护Web服务时调用它。我不确定这个问题是否也适用于其他客户端工具。