`

比较各JAX-RS实现

阅读更多
四种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方案并不如标注一样受欢迎,但它们可以用于更复杂的配置情况。
分享到:
评论

相关推荐

    jax-rs jax-ws所需包,亲测可用

    - `provider.jar`: 这可能是一个JAX-RS或JAX-WS的具体实现,如Jersey或Apache CXF,提供了服务的运行时环境。 **使用步骤:** 1. 下载并解压压缩包。 2. 将解压后的四个jar文件导入到IDE的项目构建路径中。 3. ...

    [Jax-RS] RESTful Java 开发 (Jax-RS 实现) (英文版)

    [奥莱理] RESTful Java 开发 (Jax-RS 实现) (英文版) [奥莱理] RESTful Java with Jax-RS (E-Book) ☆ 图书概要:☆ Learn how to design and develop distributed web services in Java using RESTful ...

    [Jax-RS] RESTful Java 开发 (Jax-RS 2.0 实现) (英文版)

    [奥莱理] 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 ...

    一个包含jax-ws和jax-rs的例子(含服务端和客户端)

    标题中的“一个包含jax-ws和jax-rs的例子(含服务端和客户端)”是指这是一个示例项目,它演示了如何使用Java API for XML Web Services (JAX-WS)和Java API for RESTful Web Services (JAX-RS)来创建和消费Web服务。...

    JAX-WS API, JAX-RS API

    JAX-RS的实现有多个,如Jersey、RESTEasy、RESTlet等,它们为开发人员提供了方便的工具集,使得构建RESTful服务变得更加简单和高效。 综上所述,JAX-WS和JAX-RS都是Java平台中处理Web服务的重要工具,但它们的侧...

    Jax-RS所需要的依赖jar

    3. **Jersey**:Jersey是Sun Microsystems(现Oracle)开发的一个开源JAX-RS实现,它是许多项目首选的JAX-RS框架。它提供了丰富的功能,包括过滤器、拦截器、异常处理和消息Body处理器等。 4. **RESTEasy**:另一个...

    JAX-RS Extension

    RESTlet是一个知名的JAX-RS实现框架,它提供了一种灵活的方式去构建和部署REST服务。 **知识点**: 1. **JAX-RS基础**:JAX-RS是Java标准JSR 311和JSR 339的一部分,用于简化创建RESTful Web服务。它通过注解如`@...

    Spring MVC与JAX-RS比较与分析

    目前共有4种JAX-RS实现,所有这些实现都支持Spring,Jersey则是JAX-RS的参考实现,也是本文所用的实现。 如果你使用Spring进行开发,那可能想知道(或者有人曾问过你)Spring MVC与JAX-RS有何异同点?更进一步,...

    JAX-RS入门jar包集合

    JAX-RS通过提供一套简单的注解和API,使得开发者能轻松地在Java应用中实现REST服务。 本资源“JAX-RS入门jar包集合”包含了开始学习和使用JAX-RS所需的基本库文件,这些jar包将帮助开发者快速搭建REST服务环境。...

    SpringMVC精品资源--JAX-RS & SpringMVC supported maven buil.zip

    SpringMVC和JAX-RS是两种在Java世界中广泛使用的Web开发框架,它们都用于构建RESTful服务,但有着不同的设计哲学和技术实现。这个压缩包"SpringMVC精品资源--JAX-RS & SpringMVC supported maven build.zip"显然是一...

    JAX-RS包(内含1.0和1.4)

    此外,JAX-RS还允许第三方提供实现,如Jersey、RESTEasy等,它们在标准之上提供了额外的功能和便利性。 总结来说,JAX-RS是Java开发REST服务的标准API,通过其提供的注解和接口,开发者可以高效、简洁地构建RESTful...

    JAX-RS+spring

    3. **实体序列化与反序列化**: JAX-RS支持自动将Java对象转换为JSON或XML,反之亦然,这通常通过实现MessageBodyReader/Writer接口或者使用库如Jackson或Gson完成。 4. **提供者与容器**: JAX-RS不强制使用特定的...

    jax-rs 2.1规范最终版-英文

    JAX-RS 2.1规范的最终版发布于2017年7月13日,由编辑Pavel Bucek和Santiago Pericas-Geertsen负责,可通过邮件组jaxrs-spec@javaee.groups.io进行评论反馈。该规范的发布由Oracle Corporation支持,它进一步强化了...

    RESTful Java with JAX-RS 2.0

    《RESTful Java with JAX-RS 2.0》是一本专注于Java语言在构建RESTful服务方面的专著。作者Bill Burke以其在Java技术方面的深厚底蕴和对RESTful架构的深刻理解,引领读者深入理解并掌握JAX-RS 2.0标准。 书中首先...

    jax-rs开发实例(bookkeeping)

    **JAX-RS 开发实例:Bookkeeping** JAX-RS,全称为Java API for RESTful Web Services,是Java平台上的一个标准,用于构建RESTful Web服务。它为开发人员提供了一种简单、直观的方式来创建Web服务,这些服务可以...

    JAX-RS注解及使用方法

    JAX-RS 注解及使用方法 JAX-RS(Java API for RESTful Web Services)是一种基于 Java 语言的 RESTful Web 服务框架,它提供了一种简单、灵活的方式来开发 RESTful Web 服务。JAX-RS 使用注解来定义资源的行为和...

    JAX-RS-FileUpload-Jersey-Example

    在本文中,我们将深入探讨如何使用Java API for RESTful Web Services (JAX-RS) 和 Jersey 实现文件上传功能。标题“JAX-RS-FileUpload-Jersey-Example”暗示了我们将集中讨论如何利用这两个强大的工具来创建一个...

    java_webservice_JAX-RS.zip_cxf_jax_jax-rs_spring cxf

    Java Web服务,特别是JAX-RS(Java API for RESTful Web Services)和Apache CXF,是企业级应用程序中实现服务接口的重要技术。本教程将深入探讨如何在SSH(Spring、Struts、Hibernate)架构中集成Web服务,以及如何...

    JAX-RS Rest RestLet项目源码

    RESTLet是JAX-RS的一个实现,它提供了一种灵活的方式来构建RESTful应用程序。RESTLet框架支持多种功能,包括URI模板、过滤器、客户端代理、安全性和国际化。这个框架特别适合于那些希望以更直接和自定义的方式处理...

Global site tag (gtag.js) - Google Analytics