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,而是提供了Java EE服务器的Glassfish。

我能够在Glassfish上运行我的网络服务。Glassfish使用什么JAX-WS实现?由于它托管在Oracle上,我假设它使用的是Java的JAX-WS实现,这应该是JDK 1.6的一部分?我的假设正确吗?另外,要运行基于 JAX-WS 的 Web 服务,我需要下载 JAX-WS jar。我找到了地铁。但是在它的页面上,我看到地铁的链接是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(具有从标准泽西到Restlet或CXF的各种实现)。

在 Metro

的主页上,"Metro 由 JAX-WS 参考实现项目和 Web 服务互操作性技术项目组成。

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

  • 基于 TCP 的肥皂
  • WS-AtomicTransactions/Coordination
  • WS-MetadataExchange
  • WS-Policy (https://github.com/javaee/metro-policy)
  • WS-可靠消息传递
  • WS-SecureConversation
  • WS-Security
  • WS-SecurityPolicy
  • WS-信任

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

最新更新