1

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

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

到目前为止,我发现:

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

我还喜欢随机论坛帖子,它似乎表明 Glassfish 正在使用 XML Soap 之一。W3C 标准是一个草案,但似乎是 2007 年的草案。

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

4

1 回答 1

2

由于这个问题在这里被风吹草动,所以我决定以防其他人偶然发现这个问题。

似乎原始帖子中链接到的 W3C 规范已经停滞不前,因为它仍处于草稿阶段。还有一个 WSDL2 的 W3C 规范,其中包括一个特定的属性来指示 MTOM 支持,但是 WSDL2 似乎并没有在野外使用。

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

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

于 2011-02-12T02:51:37.047 回答