Metro vs Java的JAX-WS?

Java的JAX-WS和Metro有什么区别? 它们是两个不同的JAX-WS实现相同吗?

根据我的研究,JAX-WS已经是JDK 6的一部分。但是,JAX-WS没有附带标准的JDK包,所以我找了一个Java EE jar。 但是,似乎Oracle不承载已编译的Java EE jar,而是提供Glassfish作为Java EE服务器。

我能够在Glassfish上运行我的Web服务。 Glassfish使用什么JAX-WS实现? 由于它托管在Oracle上,我假设它使用Java的JAX-WS实现,它应该是JDK 1.6的一部分? 我的假设是正确的吗? 另外,要运行基于JAX-WS的Web服务,我需要下载JAX-WS jar。 我找到了Metro 。 但在它的页面上,我看到地铁的链接是Glassfish的子链接。 所以我现在很困惑。 Glassfish使用Metro吗? 或者Glassfish使用Java的JAX-WS?

Metro和Java的JAX-WS是一样的吗?

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的各种实现)。

在Metro的主页上 ,“ Metro包含JAX-WS参考实施项目和Web服务互操作性技术项目”。

Web服务互操作性技术(WSIT)(以前称为Project Tango)包括以下实现:

  • SOAP over TCP
  • WS-AtomicTransactions /协调
  • WS-元
  • WS-Policy( https://github.com/javaee/metro-policy
  • WS-ReliableMessaging的
  • WS-SecureConversation的
  • WS-Security的
  • WS-SECURITYPOLICY
  • WS-信托

请查看此答案以获取更多信息。