四种JAX-RS具体实现的解决方案
* CXF——XFire和Celtix的合并(一个由IONA赞助的开源ESB,最初寄存在 ObjectWeb上)。
* Jersey——Sun公司的JAX-RS 参考实现。
* RESTEasy——JBoss的 JAX-RS项目。
* Restlet——也许是最早的REST框架了,它 JAX-RS之前就有了。
尽管围绕着REST存在各种各样的争论,但JAX-RS提供了Java语言所需的REST 支持这一点是无可争议的。如果你是REST新手,你会选择哪种实现呢?嗯,Solomon Duskis试图解答这一问题。他还在dzone上指出:
我想就以下几个“纯”JAX-RS以外的方面对各JAX-RS实现进行比较。
这些方面包括:
* 产品成熟度
* 服务端集成策略
* Java客户端API
* 可配置能力
* 安全性
* 性能
Solomon Duskis说“Jersey的用途是作为一个参考实现。RESTEasy是新思想的游乐场。CXF是在IONA支持下的‘企业版’。Restlet项目诞生的目的是增加一种RESTful API选择。”
然而,Bill Burke在博客评论中反击道:
RESTEasy不仅仅是新思想的游乐场。其实,我们将很快在JBoss里支持它(一拿到TCK就可以),而且我们很多大客户都在催促我们提供 RESTEasy支持。
在易用性方面,Solomon Duskis说:
你所面临的问题是选择一种实现。我觉得Jersey的确很容易上手,不过Bill Burke会说RESTEasy同样很简单。它们都可以与EJB一起使用。
不过,使用Jersey的话,搭建与运行测试服务很容易,如果你下载NetBeans的话更是如此。我第一次用Jersey和NetBeans时,不到半个小时就测试并运行起来了,包括下载、安装及代码浏览等。
Sun公司的人很想把 Jersey与人们关于“参考实现”的传统看法区分开:
你在谈到“产品用途”时,应当将Jersey看作一种立马可投入使用的产品(事实上下个月它就要随GlassFish v3 Prelude版捆绑发布了)。Jersey团队花费了相当多的时间来测试并改善代码,以免去其作为“参考实现”的印象!:)
Solomon Duskis打算对这几个方面进行研究,然后将结果发布在博客里。一篇名为《JAX-RS Spring集成》的文章已经发布出来了。
现在的四种JAX-RS实现均提供Spring集成,连JBoss的RESTEasy都是。
接着,他对集成作了相当简短的介绍。不过正如Paul所指出的,Solomon Duskis在讲述Jersey时引用的是过时的资料。这比较遗憾,因为我们需要的是一个深入彻底的比较。Solomon Duskis最后说:
四种实现均具有相当出色的Spring/JAX-RS能力,但我认为CXF是“JAX-RS产品里Spring集成做得最好的”。
不过显然这只是他的个人看法,其他人肯定会有不同意见。比如Bill Burke就问道:
我没看出CXF在Spring集成方面比其他产品优越在哪里。我不明白为什么所有额外的CXF专用XML都被放在一个Spring XML文档里。RESTEasy和Jersey提供的Spring集成要比CXF的侵入性更小。如果我没搞错的话。
对此,Solomon Duskis回复说:
如果各个类有一个简单的配置,能够满足超过90%的需要,那么标注驱动的方法是可行的。剩下那不到10%的部分,需要在不同场合下对同一资源作不同配置。 我知道,根据我所更新的功能的需求与当前部署,我将会需要这种方案。为了通过同样的Spring XML文档来部署具有不同配置(如不同的JDBC数据源、不同的服务实现等等)的同一个资源,CXF提供了额外的功能。基本上,大多数情况下,标注的办法是 很好的,但有时,你必须采用外部配置的办法来实现解耦(decoupling)。XML方案并不如标注一样受欢迎,但它们可以用于更复杂的配置情况。
分享到:
相关推荐
[奥莱理] RESTful Java 开发 (Jax-RS 实现) (英文版) [奥莱理] RESTful Java with Jax-RS (E-Book) ☆ 图书概要:☆ Learn how to design and develop distributed web services in Java using RESTful ...
[奥莱理] RESTful Java 开发 (Jax-RS 2.0 实现) (英文版) [奥莱理] RESTful Java with JAX-RS 2.0 (E-Book) ☆ 图书概要:☆ Learn how to design and develop distributed web services in Java, using RESTful ...
目前共有4种JAX-RS实现,所有这些实现都支持Spring,Jersey则是JAX-RS的参考实现,也是本文所用的实现。 如果你使用Spring进行开发,那可能想知道(或者有人曾问过你)Spring MVC与JAX-RS有何异同点?更进一步,...
JAX-RS Rest RestLet项目源码 对初学者有帮助 实现最简单的 GET PUT DELETE UPDATE
Jax-RS-性能比较Jax-RS实现与嵌入式容器的性能比较 写了一篇文章: 。 他列出了8种最佳的轻量级Java RESTful框架。 就我个人而言,我将jax-rs实现和微框架用于将应用程序部署为微服务,并且这些微服务可以部署在...
REST 软件架构基于具象资源传输。RESTful Web 服务提供了一些优势:简单、轻量级、快速。RESTful Web 服务公开了一组由 URI 标识的资源。...Jersey 是 JAX-RS 的参考实现,简化了 Java 中 RESTful Web 服务的开发。
地位Maven依赖要在基于Maven的项目上使用JAX-RS,请使用以下依赖项: < dependency> < groupId>com.fasterxml.jackson.jaxrs</ groupId> < artifactId>jackson-jaxrs-json-provider</ artifactId> < version>2.12.0...
JAX-RS-演示学术项目的 JAX-RS(用于 RESTful Web 服务的 Java API)演示。 该演示使用作为 JSR 311 规范的参考实现。
demo for Jax-rs with the Junit test #开发需求 1、实现RS服务 2、生成SWAGGER接口文档 3、实现接口单元测试示例 4、对接口访问过程进行日志记录 #实现方案 REST API实现方式 Spring Boot框架实现方法 1、创建资源...
该项目使用JAX-RS参考实现Oracle Jersey作为JAX-RS实现以及用于JSR-353 Java JSON处理的GlassFish RI。 但是,此项目不使用任何Jersey特定的扩展,因此任何兼容的JAX-RS 2.0客户端实现都应兼容。 该项目的目的是为...
1)下载代码到你的机器上: git clone https://github.com/soeirosantos/sample-jaxrs-angularjs-2.git 2)打开src/main/webapp/scripts/app.js 。 这个文件配置了我们名为angularjaxrs的 AngularJS 应用程序。 ...
Java JAX-RS示例 根据MIT许可获得许可。 请参阅文件LICENSE。 Java JAX-RS示例的集合。 示例包括用Java编写的代码。 链接 一般的 -用Java测试和验证REST服务 阿帕奇 (实现JAX-RS等)
图书数据库示例####Goal:让我们有书籍目录,... ####Implementation:RESTful Web 服务规范 JAX-RS 2.0 和 JPA 2.1,使用 RESTEasy 3、jackson 2、Hibernate 4.3、Derby、jUnit。 应用程序应部署在 WildFly 8.2 上。
是jboss下面一个对JAX-RS(JSR311)的一个实现,使用起来简单方便,支持spring,oauth等。
餐厅预订服务器端使用Jersey Jax-RS的餐厅应用程序的Java后端描述我们已经为餐厅预订Web应用程序实现了Java后端我们使用的技术: Java 1.8 玻璃鱼球衣Jax-RS 冬眠MySQL的JUnit的邮差笔记: 我们还提供了一些使用...
GlassFish-JAX-RS-UploadServer GlassFish Web服务器中托管的静态文件上传服务。 Java JAX-RS,Maven。到目前为止的功能注意:此项目目前处于暂停状态,我已经忙于其他事情,但打算恢复原状。 刚开始,目前可以使用...
带有JAX-RS的示例RESTful API(在MySQL数据库上实现基本的HTTP方法)。 ##一些东西 使用Maven。 因此,请相应地导入。 不涉及身份验证。 (就这么简单。) 没有数据库持久性或连接池完成。 不进行内容协商(仅...
该项目背后的想法是获得一个略有限制的轻量级JAX-RS实现,它不具有大的,并非总是必需的功能,但具有规范中的所有核心功能。目标旨在与嵌入式Java Servlet容器(例如 , , )结合使用请勿使用rs-api