Java REST实现:Jersey vs CXF

dex*_*ter 75 java rest web-services cxf jersey

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

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

Nic*_*uer 47

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

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

就个人而言,Jersey对于JAX-RS框架非常有用,尽管不排除JBoss的RESTEasy.我喜欢这两个,但RESTEasy的文档更好.

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

  • CXF也做REST.见这里:http://cxf.apache.org/docs/jax-rs.html (13认同)

Jan*_*sen 4

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

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

哈特哈,

  • CXF 有单独的 REST 和 SOAP Maven 工件,因此如果您使用 CXF REST,您将无法获得所有内容。 (6认同)