50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

比较各 JAX-RS 实现

  • 2008-10-06
  • 本文字数:1509 字

    阅读完需:约 5 分钟

正如某人在别处说的,关于公交车,有一个奇怪的现象:你等了很久一辆不来,最后却一下来了三辆! 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 方案并不如标注一样受欢迎,但它们可以用于更复杂的配置情况。

或许更深入的比较能够揭示出更多的东西来?查看英文原文: A Comparison of JAX-RS Implementations

2008-10-06 23:0613875
用户头像

发布了 63 篇内容, 共 29.0 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

react hook 源码完全解读

flyzz177

React

创建好的小程序如何正式发布?

Towify

react源码中的fiber架构

flyzz177

React

开源共建|旺链科技与FISCO BCOS达成产业应用合作

旺链科技

区块链 开源 区块链技术

文末领资料 | 研发效能领域的三个年度关键词

思码逸研发效能

研发管理 研发效能

【等保小知识】等保3.0就是等保三级吗?

行云管家

等保 等保2.0 等保3.0

【等保小知识】等保四级是最高级别吗?等保四级适用于哪些领域?

行云管家

等保 等保测评 等保四级

硬实力,高潜力!旺链科技当选“2022德勤中国高科技高成长50强”

旺链科技

区块链 区块链技术

如何使用 Towify 在小程序中创建关联表?

Towify

牛啊!长这么大还是头一次见24W字的SpringBoot从入门到实战文档

程序知音

Java spring 微服务 springboot 后端技术

无监控,不运维!深入浅出介绍ChengYing监控设计和使用

袋鼠云数栈

华为云Stack新版发布:构筑行业云底座,共创行业新价值

华为云开发者联盟

云计算 后端 华为云 企业号 1 月 PK 榜

GitHub上标星79K的LeetCode算法小抄开放下载了

小小怪下士

程序员 面试 算法 LeetCode

软件测试/测试开发 | AppCrawler 自动遍历测试工具实践(一)

测试人

软件测试 自动化测试 测试开发 自动遍历 AppCrawler

学术加油站|机器学习应用在数据库调优领域的前沿工作解读

OceanBase 数据库

数据库 oceanbase

总有一个你能用上的29个IDEA小技巧

风铃架构日知录

Java 程序员 IDEA IT 开发工具

网页抓取中最常用的三大 Python 库

极客天地

一文总结ACE代码框架

OpenHarmony开发者

OpenHarmony

Diffie-Hellman密钥协商算法探究

百度Geek说

数据安全 企业号 1 月 PK 榜

要避免的自动化实践

FunTester

3700万人在线见证梅西“圆梦”!火山引擎实力护航世界杯

火山引擎边缘云

云计算 云原生 CDN 边缘计算 火山引擎边缘计算

精准测试之覆盖

京东科技开发者

数据库 测试 代码 覆盖 企业号 1 月 PK 榜

火山引擎 DataLeap 通过中国信通院测评,数据管理能力获官方认可!

字节跳动数据平台

大数据 数据治理

react源码中的hooks

flyzz177

React

数字图像处理笔记

嵌入式视觉

数字图像处理 几何变换 低通滤波 图像锐化 高通滤波

大咖说·对话开源|与Tapdata论道数据技术开放生态

大咖说

开源

ElasticSearch必知必会-基础篇

京东科技开发者

大数据 搜索引擎 数据分析 技术分享 Elastic Search

TDengine 公布 2022 年度中国时序数据应用创新奖,33 个科技企业创新应用脱颖而出

TDengine

数据库 tdengine 时序数据库

【Redis 技术探索】「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(数据检查对比)

码界西柚

redis 1月日更 数据对比 Redis-full-check

HDI压合设计准则作业规范

华秋PCB

PCB PCB设计 HDI

编程的终结;展望2023年AI系统方向;AI的下一个阶段

OneFlow

人工智能 深度学习

比较各JAX-RS实现_SOA_Mark Little_InfoQ精选文章