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 由 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-信任
查看此答案以获取更多信息。