速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

比较各 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:0613471
用户头像

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

关注

评论

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

Microsoft Office LTSC 2024 For Mac永久许可证

Rose

Redis集群slot迁移改造实践

vivo互联网技术

redis集群 slot迁移 水平扩缩容

Python如何操作文件?

快乐非自愿限量之名

Python 开发语言

落地数仓数据模型自动、可持续长效治理之策

Aloudata

数据仓库 数据治理 数据模型 数据血缘 主动元数据

CleanMyMac X for mac(Mac清理优化工具) v5beta中文激活版

Rose

百度智能云向量数据库创新和应用实践分享

百度Geek说

数据库 百度云 数据 大模型 知识库

iShowU Studio for mac(强大的屏幕录像编辑工具)v2.3.15激活版

Rose

Cisco ACI Simulator 6.0(7e)M 发布下载,新增功能简介

sysin

Cisco sdn 思科 ACI

中文汉化版Navicat数据库 Navicat Premium 15直装版 mac/win

Rose

为什么说Scrum是有效的?(Why does Scrum work)

ShineScrum

开源WIKI工具对比,助你轻松选择适合的系统

爱吃小舅的鱼

Wiki系统

百度梁志祥:樱桃好吃树好栽 智能体让营销更简单

Geek_2d6073

如何用 Scrapy 爬取网站数据并在 Easysearch 中进行存储检索分析

极限实验室

爬虫 Scrapy easysearch

mac苹果电脑风扇控制软件:Macs Fan Control Pro for mac 激活版

你的猪会飞吗

mac软件下载 Mac软件下载站 mac破解软件下载

Why do customers choose IPQ9570 as WiFi 7 motherboard chip solution?

wifi6-yiyi

WiFi7 IPQ9570

flowjo for mac安装教程 Mac流式细胞分析软件 支持M1/M2

Rose

数据资产入表全流程解析,助力企业数据要素价值释放

袋鼠云数栈

Kotlin函数竟然如此简洁

Silently9527

Java kotlin

功能强大且灵活的虚拟插件Blue Cat Audio Blue Cat PatchWork mac蓝猫桥接插件

Rose

Nova for Mac 代码编辑器 v11.10中文版

Rose

开源CRM系统分析:主流8款哪个最好?

爱吃小舅的鱼

开源

9款优质开源知识管理系统推荐,助力团队协作

爱吃小舅的鱼

知识管理软件

截图和屏幕录制工具 CleanShot X for mac v4.7.3激活版

Rose

一个故事理解限流熔断降级

老张

系统架构 服务治理 基础架构 流量治理

移动医疗|基于音视频SDK和即时通讯IM技术实现线上问诊技术

ZEGO即构

直播技术 音视频sdk 互联网医疗 在线问诊 直播SDK

黑神话云端开放!ToDesk 云电脑、青椒云、网易云,不用高配电脑也能畅玩!

阿Q说代码

青椒云云桌面 ToDesk云电脑 黑神话悟空 网易云游戏电脑

使用CLion进行ROS开发

梦笔生花

CLion 2023

阿里云AMD护航,天谋科技携IoTDB登顶TPCx-IoT国际权威榜单

Apache IoTDB

前端 Vuer,为自己的项目搭建一个 Playwright 测试环境吧,给自己多一点安全感!

OpenTiny社区

Vue 前端 OpenTiny

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