JavaREST 实现: Jersey vs CXF

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

我还想知道社区最支持哪个库,例如教程、文档。

63896 次浏览

我只使用了 Jersey (非常满意) ,所以我不能给出一个真正的比较。你可能需要考虑的事情:

  • CXF 与 SOAP 堆栈一起打包 所以你带来了很多 您永远不会使用的 SOAP 相关权重 当您构建 RESTful 系统时。 (有计划分割 不过,据我所知,包装还是有问题的。)
  • 新泽西有很多 对 JAX-RS 的非标准添加 是非常有帮助的。还有一个 客户端核心框架,即 设计得很好。
  • [警告: 无耻插头前(对不起)] : 我一直 正在处理一个新泽西客户的案子 鼓励适当的 在客户端使用 REST,并且 (至少在我看来)使用起来很自然。 计划这样宣布(或 下)星期-如果你关心 客户端很多,给它一个尝试。 就我个人而言,我认为这是一个巨大的 支持新泽西的论点。

HTH,

我都用过,但目的不同。CXF 在解析 WSDL 和创建与之交互的 JavaPOJO 方面工作得非常出色,因此 CXF 对于客户端 WSDL 服务非常有用。我目前正在使用 Jersey 进行服务器端实现,并且对于使用 Jersey 启动和运行 RESTful 服务的简单性印象深刻。

由于 Jersey 主要致力于 RESTful 服务和 CXF 交易(全部?)使用 SOAP,我认为这取决于您是否希望使用 SOAP 或 REST,并从中确定最佳的工作框架。就个人而言,我更倾向于 REST 阵营而不是 SOAP,但我的需求是不同的。如果我所编写服务的供应商/客户/公司需要某种契约,我可能仍然会推荐 REST (和 REST 对于基于契约的服务的等价物,WADL) ,但可能需要实现 SOAP 服务,在这种情况下,我会先看 CXF,然后再看其他所有东西。

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

对于 CXF,文档是可以的,但是我在如何处理 SSL 和 HTTP 代理方面遇到了不一致的地方,但是它最终自己解决了。CXF 确实提供了更多关于这些附加特性的开箱即用的功能,我认为 RESTEasy 将为 RESTful 框架提供等效的功能。

你考虑过 RESTlet吗? 它是一个快速构建 RESTful Web 服务的强大包。RESTlet 背后的人员还编写了 RESTlet In Action 书籍,该书目前正处于早期访问阶段。现有的章节很好地解释了 REST,并详细说明了如何设计 REST API。

我已经为 JAX-WS 使用了 Apache CXF,为 JAX-RS 使用了 Jersey,所以我不能对 CXF 和 REST 进行评论。使用 Jersey 建立一个 REST 示例很容易。文件足够了。我还没有使用 RESTEasy,但是 Jersey 看起来有更多的吸引力和更新。

RESTful Web Services Cookbook 是实现指南的一本好书。

如果您关心将使用 新泽西开发的解决方案转换为在 CXFGlen Mazza 在 GitHub 上发布了一系列移植到 ApacheCXF 的 Jersey 示例上运行的细节。README 文件为每个示例提供了关于所做的必要更改的说明。