Java REST 实现:Jersey vs CXF [已关闭]

2022-08-31 13:22:33

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

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


答案 1

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

由于泽西岛主要致力于RESTful服务,而CXF主要(全部?)处理SOAP,我认为这归结为你是否想要使用SOAP或REST,并从那里确定工作的最佳框架。就我个人而言,我比SOAP更属于REST阵营,但我的需求是不同的。如果我处于我为之编写服务的供应商/客户/公司需要某种契约的情况下,我可能仍然会推动REST(以及REST对基于合同的服务WADL的等效物WADL),但可能需要实现SOAP服务,在这种情况下,我会首先查看CXF,然后查看其他所有内容。

就个人而言,Jersey对于JAX-RS框架来说相当不错,尽管不排除JBoss的RESTEasy。我喜欢两者,但RESTEasy的文档更好。

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


答案 2

我只使用过泽西岛(非常满意),所以我不能给出真正的比较。您可能需要考虑的事项:

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

HTH,

1月