如何selectJersey,Apache Wink和JBoss RESTEasy?

我刚刚听说了Apache Wink ,我想知道与Jersey或JBoss RESTEasy相比有什么不同。 其他两个不能做什么呢?

我们一直在使用泽西来进行一些内部项目,主要是因为它很简单,但我无法弄清楚是什么让这两个更好,我会考虑切换。 有没有人有任何利用这些填充的利基?

JAX-RS实现

新泽西

  • 参考实现
  • 通常是最前沿的
  • 通过Atmosphere或2.0版本支持真正的asynchronous(即networking套接字等)连接。
  • 支持Spring和标准注入容器(即@Inject)。
  • Glassfish捆绑它。
  • 它比其他JAX-RS项目更加模块化。
  • 它有一个踢屁股URI生成器
  • 不一定需要servlet容器。
  • 灰熊支持
  • Netty支持(很早)。
  • Swagger支持
  • 一些丢失的OAuth 2.0。 你将不得不使用其他库。
  • 一些MVC支持通过可视
  • 在java.net上托pipe(一个负面的,因为该网站有时非常缓慢)。
  • 授权基于CCDL 1.1和GPL-v2。 请确保您检查泽西岛许可证,然后再将其用于商业用途

https://jersey.github.io/license.html

高枕无忧

  • 以上大部分支持查看技术(见HTMLEasy )
  • 它具有asynchronous连接支持
  • caching支持
  • EJB支持 (如果你陷入这个垃圾)
  • JBoss捆绑它(我认为)
  • Netty支持
  • 可以说是最好的Spring集成(MVC处理程序) 。
  • 早期的Swagger支持
  • 更多安全支持,包括早期的OAuth 2.0支持

Apache Wink (从未使用过)

  • 我不知道为什么这个项目存在。
  • 据说它的高性能集中。
  • 它有一个build立在HttpUrlConnection之上的客户端(这是一个减号…它应该像Spring RestTemplate一样可插入)。
  • 基本上,Wink是在一些企业公司内部开发的,然后交给了​​Apache。
  • 需要一个servlet容器。

的Restlet

  • 非常强大,但非常复杂
  • 提供一些低级别的REST支持
  • 不需要servlet容器

Apache CXF

  • 一些有趣的WADL支持。
  • 重用和/或结合使用JAX-RS和JAX-WS
  • 安全支持
  • 整合瓦特/spring虽然有点讨厌
  • 假设客户端存根的自动生成

其他类似RPC的系统

消息队列

  • 的RabbitMQ
  • ActiveMQ的

asynchronousRPC

  • Finagle – 来自Twitter。
  • msgpack-RPC

我谦卑的意见

我知道OP要求REST,但是如果这是用于内部通信的话,那么如果你的要求与这些系统匹配的话,可以认真考虑使用消息队列或其他asynchronousRPC(Finagle)而不是传统的REST。

如果它必须是传统的HTTP REST(外部),我会selectRestEasyJersey,因为大部分的头脑分享都放在这两个项目中。

另请参阅: Rest客户端的Java?

在select使用的实现时,请记住这一点:如果您尝试将Jersey Web服务部署到JBOSS 7.1,则不起作用。 这个错误将会发生:

Only one JAX-RS Application Class allowed 

这是因为REST Easy与JBOSS捆绑在一起作为默认的JAX-RS实现。 因此,JBOSS会决定这是您要使用的实现,不会加载另一个JAX-RS实现(如Jersey)。 为了解决这个问题,你需要添加下面几行到你的web.xml文件中:

  <context-param> <param-name>resteasy.scan</param-name> <param-value>false</param-value> </context-param> <context-param> <param-name>resteasy.scan.providers</param-name> <param-value>false</param-value> </context-param> <context-param> <param-name>resteasy.scan.resources</param-name> <param-value>false</param-value> </context-param> 

链接: https : //community.jboss.org/message/744530

我最喜欢的Jersey扩展之一是Viewables。 可视化允许您将数据轻松绑定到JSP页面,以实现真正的模型 – 视图 – 控制器(MVC)体系结构:

如果你打算使用JBoss 7.x,你必须使用RestEasy,因为它被集成在JBoss中。 要使用JBoss 7.x的Jersey,你必须禁用RestEasy,这很复杂!