Java REST实现:Jersey vs CXF

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

我也想知道什么图书馆最受社区支持,如教程,文档。

我已经使用了两个,但为了不同的目的。 CXF非常擅长parsingWSDL并创buildJava POJO进行交互,所以CXF对于客户端WSDL服务来说非常有用。 我目前正在使用Jersey进行服务器端实现,使用Jersey进行RESTful服务的启动和运行非常简单,给我留下了深刻的印象。

由于Jersey主要致力于RESTful服务,而CXF主要使用SOAP处理(所有?),所以我认为这取决于您是否想使用SOAP或REST,并从那里确定最佳的工作框架。 就我个人而言,我比REST更受欢迎,但我的需求却不同。 我应该处于供应商/客户/公司为了需要某种合同而编写服务的情况下,我可能仍会推荐使用REST(和REST等同于基于合同的服务WADL ),但可能需要实施一个SOAP服务,在这种情况下,我会先看看CXF,其次是其他所有东西。

就个人而言,Jersey对于JAX-RS框架来说相当不错,不过不要被JBoss排除在RESTEasy之外 。 我喜欢这两个,但RESTEasy的文档更好。

对于CXF,文档是可以的,但是我在处理SSL和HTTP代理时遇到了不一致的地方,但是最终它自己解决了。 CXF确实提供了更多开箱即用的function,我会说RESTEasy将为RESTful框架提供等效的function。

我只用了泽西岛(非常满意),所以我不能给出真正的比较。 你可能要考虑的事情:

  • CXF与SOAP堆栈支持打包在一起,因此您在构buildRESTful系统时会引入许多与SOAP相关的权重,这些权重是您永远不会使用的。 (据我所知,有计划拆分包装)
  • Jersey带有一些非标准的JAX-RS附加function,对我们非常有帮助。 还有一个客户端核心框架devise得非常好。
  • [警告:无耻的插件(抱歉)]:我一直在扩展泽西客户端框架,鼓励在客户端正确使用REST,并且(至less是恕我直言)至less是非常自然的使用。 计划在本周(或下一周)宣布 – 如果您非常关心客户端,请尝试一下。 就我个人而言,我认为这是一个巨大的亲泽西论据。

HTH,

一月

你有没有考虑过RESTlet ? 这是一个快速构buildRESTful Web服务的强大软件包。 RESTlet背后的人们也编写了当前处于早期访问状态的RESTlet In Action书籍。 已经可用的章节在解释REST方面做了很好的工作,并详细说明了如何deviseREST API。

如果您担心将使用Jersey开发的解决scheme转换为在CXF上运行的细节,那么Glen Mazza会在GitHub上发布一系列移植到Apache CXF的Jersey样本 。 自述文件为每个样本提供了有关必要更改的注释。

我已经使用JAX-WS的Apache CXF和JAX-RS的Jersey,所以我不能评论CXF和REST。 使用Jersey来build立一个REST例子很容易。 文件是足够的。 我还没有使用RESTEasy,但泽西看起来有更多的牵引力和更新的更新。

RESTful Web服务食谱是一本关于实现准则的好书。