2011-01-28 25 views
0

我將MTOM附件支持添加到Home Grown應用程序服務器中的現有Web服務支持中。 Web服務框架遵循與JavaEE5類似的模式,註釋服務&對象被自動公開爲具有自動WSDL生成的WebService。什麼標準指定如何在WSDL中指示MTOM/XOP支持?

我已經得到了實際的解析和生成過程,但我一直無法確定是否需要更新WSDL生成以向客戶端指示MTOM受支持和首選。我一直在爲如何表示MTOM支持發現多個相互矛盾的標準,而且我對現實世界中使用的東西感到不知所措。

到目前爲止,我發現:

據我所看到的,W3C一個似乎是一個後版本的XMLSoap,但它們似乎在不同的名稱空間中使用不同的元素進行聲明:

我也喜歡一個random forum post這似乎表明,Glassfish的是使用XML SOAP之一。 W3C標準是草案,但似乎是2007年正弦草案。

有沒有人知道這些規格中的哪一個通常在使用?或者,當涉及到MTOM時忽略WSDL常見?

回答

1

由於這個問題已經在這裏滾滾而來,所以我決定讓其他人絆倒這一點。

看起來,原始帖子中鏈接的W3C規範已停滯,因爲它仍在草稿中。還有一個WSDL2的W3C規範,其中包含一個指定MTOM支持的特定屬性,但WSDL2似乎並未在野外使用。

由於這一點以及Glassfish使用的指示,我選擇了與問題中鏈接的XmlSoap規範。但是我沒有真正找到任何實際解釋MTOM斷言的工具或客戶端,而是我遇到的客戶端工具要求您明確指出它們是否應該使用MTOM對請求進行編碼。因此,包括這個說法似乎有點不切實際。

雖然JAX-WS似乎沒有使用MTOM斷言,但它使用PolicyAssertions來確保安全性。任何PolicyAssertions的存在意味着JAX-WS會忽略任何明確指定的安全配置。因此,指定MTOM斷言而不包括安全斷言可以防止Web服務在被任何方式保護時被調用。我不確定這個問題是否也適用於其他客戶端工具。