如何在Jersey、ApacheWink和JBossRestEasy之间进行选择?

如何在Jersey、ApacheWink和JBossRestEasy之间进行选择?,apache,jersey,jax-rs,resteasy,Apache,Jersey,Jax Rs,Resteasy,我刚刚听说,我想知道它与or有什么区别。其中一个能做什么,而另外两个不能 我们一直在使用Jersey的一些内部项目,主要是因为它很简单,但我不能真正弄清楚是什么使这两个更好的,我会考虑切换。有没有人有任何用例可以满足这些需求?我最喜欢的扩展之一是Viewables。Viewables允许您轻松地将数据绑定到JSP页面,以实现真正的模型-视图-控制器(MVC)体系结构: JAX-RS实现 运动衫 参考实现 通常是最前沿的 通过或2.0版本支持真正的异步(即web套接字等)连接 支持弹簧和标准

我刚刚听说,我想知道它与or有什么区别。其中一个能做什么,而另外两个不能

我们一直在使用Jersey的一些内部项目,主要是因为它很简单,但我不能真正弄清楚是什么使这两个更好的,我会考虑切换。有没有人有任何用例可以满足这些需求?

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

JAX-RS实现 运动衫
  • 参考实现
  • 通常是最前沿的
  • 通过或2.0版本支持真正的异步(即web套接字等)连接
  • 支持弹簧和标准注射容器(即@Inject)
  • 玻璃鱼把它捆起来
  • 它比其他JAX-RS项目更加模块化
  • 它真是太棒了
  • 不一定需要servlet容器
  • 格栅支架
  • 净支持(非常早)
  • 有点缺少OAuth 2.0。您必须使用其他库
  • 一些MVC支持通过
  • 托管在java.net上(由于该站点有时速度非常慢,所以这是一个负数)
  • 许可基于CCDL 1.1和GPL-v2。请确保在将运动衫用于商业用途之前检查其许可证

放松
  • 上述大部分但最值得注意的技术都支持视图技术(请参阅)
  • 它确实有
  • (如果你的朋友喜欢那玩意儿)
  • JBoss捆绑了它(我想)
  • 可以说是最好的
  • 更多安全支持,包括
Apache Wink(从未使用过它)
  • 我不知道这个项目为什么存在
  • 据说它的高性能是集中的
  • 它有一个构建在HttpUrlConnection之上的客户端(这是一个负数…它应该是可插拔的)
  • 基本上Wink是在一些企业公司内部开发的,然后交给Apache
  • 需要一个servlet容器
再出租
  • 非常强大但非常复杂
  • 提供一些低级REST支持
  • 不需要servlet容器
ApacheCXF
  • 一些有趣的WADL支持
  • 重用和/或组合JAX-RS和/或JAX-WS
  • 安全支持
  • 与Spring的集成,尽管有点糟糕
  • 假定自动生成客户端存根
其他类似RPC的系统 消息队列
  • ActiveMQ
异步RPC
  • ——来自推特
我的拙见

我知道OP需要休息,但是如果这是内部通信,如果你的需求与这些系统匹配,请认真考虑使用消息队列或其他异步RPC(FiaGLE)而不是传统的REST。 如果必须是经典的HTTP REST(外部),我会在RestEasyJersey之间进行选择,因为这两个项目中有大量的思想分享


另请参阅:

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

在选择要使用的实现时,请记住:如果您试图将Jersey web服务部署到JBOSS 7.1,它将不起作用。将发生以下错误:

Only one JAX-RS Application Class allowed
这是因为RESTEasy作为默认的JAX-RS实现与JBOSS捆绑在一起。因此,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>

轻松扫描
假的
resteasy.scan.providers
假的
resteasy.scan.resources
假的

链接:

我一点也不推荐运动衫(我只试过2.5.1版)。首先,配置和设置是非常困难的。你能解释一下为什么从你的角度来看Restlet是复杂的吗。看看第一步的例子:也许“复杂”不是正确的词,restlet也在发展。我想当我看restlet时,它似乎比JAXR更重要。它可能是最全面的rest服务器库,因此被称为“复杂的”。它确实有更广泛的rest/HTTP功能范围,6个版本,44个版本,自2005年以来一直存在,但它的核心org.restlet.jar非常紧凑(零依赖),统一了客户机和服务器。看看我们的第一步示例,看看如何在5分钟内开始,而不必配置任何Servlet容器或XML配置。但是,你仍然可以发展/扩展得很远:你已经不止一次发表过这样的评论。我想说的恰恰相反。YMMV。参见Tihomir Meščić的答案。这是非常有用的信息(尽管它回答了一个不同的问题)。我的猜测是(我已经使用JBOSS很长时间了),您可以在JBOSS中排除提供的JAX-RS。或者,您可以将其排除在pom中。一句话:这是一个可以解决的问题。另请参见: