2012-10-01 18 views
23

Java的JAX-WS和Metro的區別是什麼?它們是兩個不同的JAX-WS實現嗎?根據我的研究,JAX-WS已經是JDK 6的一部分。但是,JAX-WS沒有附帶JDK的標準包,因此我尋找了Java EE jar。但是,Oracle似乎並未託管已編譯的Java EE jar,而是提供了Glassfish,它是一個Java EE服務器。地鐵與Java的JAX-WS?

我能夠在Glassfish上運行我的Web服務。 Glassfish使用哪些JAX-WS實現?由於它託管在Oracle上,我假設它正在使用JAX-WS的Java實現,這應該是JDK 1.6的一部分?我的假設是否正確?另外,要運行基於JAX-WS的Web服務,我需要下載JAX-WS jar。我發現Metro。但在頁面上,我看到地鐵的鏈接是Glassfish的一個子鏈接。所以我現在感到困惑。 Glassfish使用Metro嗎?或者是Glassfish使用Java的JAX-WS?

Metro和Java的JAX-WS是一樣的嗎?

+0

這個問題被觀看了400多次,甚至一次都沒有投票!大FAT +1! –

回答

26

JAX-WS是一個API,而Metro是JAX-WS API的參考實現;都來自Sun/Oracle,因此是標準的。您可以將它們視爲接口(JAX-WS)和實現接口(Metro)的類,僅在更高級別上。 Glassfish也使用Metro作爲JAX-WS的實現。

需要說明的是,Metro包含JAXB和其他API的實現。

此外,SOAP Web服務在某種程度上已經過時;新的趨勢是使用REST Web服務; JAX-RS(具有從標準Jersey到Restlet或CXF的各種實現)。

+0

感謝您的回答!那麼JDK 1.6中包含的是什麼?它只是一個API或JAX-WS實現? – Arci

+0

@Arci它也包括地鐵。看到這裏一個詳細的答案 - http://stackoverflow.com/questions/9116008/does-java-7-include-a-jax-ws-implementation-or-just-the-api。 – m3th0dman

+0

嗯..但我認爲JDK 1.6包含JAX-WS的實現?或者它只是一個API,當他們說JDK 1.6與JAX-WS捆綁在一起時?當你說API時,這是否意味着它只是一個接口而不是一個實現? – Arci

0

Accourding到Metro's home page, 「地鐵線由JAX-WS參考實現項目和Web服務互操作性技術項目的。」

Web服務互操作性技術(WSIT)(以前稱爲Tango項目),包括實現:

  • SOAP通過TCP
  • WS-AtomicTransactions /協調
  • WS-元
  • 的WS-Policy(https://github.com/javaee/metro-policy
  • WS-ReliableMessaging的
  • WS-SecureConversation的
  • 的WS-Security
  • WS-安全
  • WS-信託

看在這answer進一步的信息。