Java REST实现:Jersey vs CXF


75

您认为这两个库之间的优缺点是什么?这两个中哪一个最适合生产环境?顺便说一下,我将使用JSON而不是XML。

我也想知道社区最支持哪种库,例如教程,文档。



Answers:


48

我都用过,但是出于不同的目的。CXF很好地解析了WSDL并创建了要与之交互的Java POJO,因此CXF非常适合客户端WSDL服务。我目前正在使用Jersey进行服务器端实现,而使用Jersey来运行RESTful服务的简单性给我留下了深刻的印象。

由于Jersey主要致力于RESTful服务,而CXF主要(全部)与SOAP进行交易,我认为这取决于您是否要使用SOAP或REST,并从那里确定最佳的工作框架。就个人而言,我比SOAP更适合从事REST阵营,但我的需求有所不同。如果我在为该服务编写的供应商/客户/公司需要某种合同的情况下,我可能仍会推动REST(和REST等同于基于合同的服务WADL),但可能需要实施SOAP服务,在这种情况下,我将首先看CXF,然后再看其他所有内容。

就个人而言,Jersey非常适合JAX-RS框架,尽管不排除JBoss的RESTEasy。我都喜欢,但是RESTEasy的文档更好。

对于CXF,该文档还可以,但是我在处理SSL和HTTP代理所需的方式上遇到了矛盾,但最终还是可以解决。CXF确实提供了有关这些附加功能的更多功能,我想说RESTEasy将为RESTful框架提供等效的功能。


13
CXF也执行REST。看到这里:cxf.apache.org/docs/jax-rs.html
HDave

1
Apache CXF提供了三种使用REST的方法:JAX-RS,JAX-WS和HTTP绑定。
2012年

4

我仅使用Jersey(非常满意),所以无法进行真正的比较。您可能要考虑的事项:

  • CXF与SOAP堆栈支持打包在一起,因此您带来了很多与SOAP相关的重量,而这些重量在构建RESTful系统时将永远不会使用。(据我所知,有计划拆分包装)
  • 泽西(Jersey)附带了许多对JAX-RS的非标准添加,它们非常有帮助。还有一个客户端核心框架,设计得非常好。
  • [警告:无耻的插入(对不起)]:我一直在研究扩展的Jersey客户端框架,该框架鼓励在客户端上正确使用REST,并且使用起来(至少是恕我直言)。计划在本周(或下周)宣布此消息-如果您非常在意客户端,请尝试一下。就个人而言,我认为这是一个巨大的亲泽西论点。

HTH,

一月


关于您的无耻插件,我可以在哪里找到一些文档/信息/等。关于它,我也许可以给它一个旋转?
尼克·克劳尔

尼克,我只是在输入介绍性博文。Paul Sandoz计划今天早上进行一些最终的存储库更改。一旦完成,我们将公开。您可以在nordsc.com/blog上找到该博客(希望在今天下午)。
Jan Algermissen

尼克,你去:-) | 泽西岛客户端框架:nordsc.com/blog/?p=439
Jan

6
CXF具有单独的REST和SOAP Maven工件,因此,如果您执行CXF REST,您将一无所获。
HDave 2011年

3

您考虑过RESTlet吗?它是一个功能强大的软件包,可以快速构建RESTful Web服务。RESTlet背后的人们还写了《 RESTlet In Action》一书,目前正在抢先试用。已有的章节在解释REST和详细介绍如何设计REST api方面做得非常好。


2

如果您担心转换使用Jersey开发的解决方案以在CXF上运行的细节,Glen Mazza在GitHub上发布了移植到Apache CXF的Jersey示例集合。README文件为每个样本提供了有关进行必要更改的注释。


链接断开了,如果可以的话,您可以更新它吗
Ankur Loriya

我尝试了@AnkurLoriya。Glen将他的博客移到了web-gmazza.rhcloud.com,但是我在那里找不到该文章。我会解决的。
David J. Liszewski '16

1

我已经将Apache CXF用于JAX-WS,将Jersey CJ用于JAX-RS,所以我无法评论CXF和REST。使用Jersey设置REST示例很容易。该文件是足够的。我没有使用过RESTEasy,但Jersey似乎具有更多的吸引力和最新的更新。

RESTful Web Services Cookbook是实现准则的一本好书。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.