JAX-WS:XML Web服务的Java API
让我们回到2006年。JavaSE6发布时引入了许多新功能。
引用Java SE 6规范(JSR 270型),关于Java SE 6中引入的功能:
JavaSE6的功能集在很大程度上是由一组主题驱动的。
主题描述了发布的主要焦点。有些主题是相当抽象的指导原则;其他更具体的是,它们确定了特定的问题领域、重要的新功能集或特定的目标市场细分。
[...]
- XML和Web服务:最初提出的JavaSE5版本旨在包括一个完整的Web服务客户端堆栈。不幸的是,这项工作无法在该版本发布之前完成,而与此同时,XML和Web服务对社区许多成员的重要性只增加了。
[...]
JAX-WS 2.0规范的目标之一是准备JAX-WS以包含在J2SE的未来版本中(该版本被重命名为Java SE软件稍后)。引用JSR 224号:
- 纳入J2SE:JAX-WS 2.0将为JAX-WS在未来版本的J2SE中的包含做准备。应用程序可移植性是一项关键要求,JAX-WS 2.0.将定义生成完全可移植客户端的机制。
JavaSE6包含JAX-WS 2.0组件,引入了在JavaSE.Quoting中创建基于SOAP的web服务的可能性这篇文章来自Oracle:
Java平台Standard Edition 6(Java SE 6)最令人兴奋的新特性之一是支持Java API for XML Web Services(JAX-WS)2.0版。JAX-WS 2.0是新重组的web服务API堆栈的中心[…]。
尽管JAX-WS在Java平台企业版5(Java EE 5)的开放源码世界中找到了它的主阵地,并被设计用于在这种环境中取代基于XML的RPC(JAX-RPC)的Java API,但您甚至可以在不接触企业服务器的情况下重用大部分功能[…]
您可以使用JAX-WS构建web应用程序和web服务,并结合较新的基于XML的web服务功能。[...]
当您运行应用程序时,JavaSE6平台有一个小型web应用程序服务器,它将发布web服务。[...]
JAX-RS:RESTful Web服务的Java API
JAX-RS随后于2008年问世。它最初由JSR 311号文件它包含在Java EE 6伞形规范中(JSR 316钢).
JAX-RS的第二个版本于2013年推出,由JSR 339号文件它包含在JavaEE7总括规范中(JSR 342号文件).
JAX-RS以HTTP为中心,JAX-RS应用程序经常部署在servlet容器上。
Java SE 7(JSR 336号文件)和Java SE 8(JSR 337号文件)规范中没有包含JAX-RS组件。然而,JAX-RS应用程序可以在JavaSE环境中发布(使用RuntimeDelegate(运行时间委派)
)JAX-RS实现也可以支持通过JAX-WS发布。
在JavaSE中包含JAX-RS还意味着包含该规范的实现。它使JavaSE环境中的事情变得更加复杂,但在JavaEE环境中完全可以接受,您的容器将为您提供实现。例如,GlassFish为您提供Jersey(参考实现),而JBoss/WildFly为您提供RESTEasy。