我刚刚听说了 阿帕奇眨眼,我想知道它与 新泽西或 JBoss RESTEasy有什么不同。一个人能做什么其他两个人做不到的?
我们已经在一些内部项目中使用 Jersey,主要是因为它的简单性,但是我实在想不出是什么让这两个项目更好,我会考虑切换它们。是否有任何人有任何用例,其中每个利基填补?
我最喜欢的 新泽西扩展之一是 Viewables。可视化允许您轻松地将数据绑定到 JSP 页面,以实现真正的模型-视图-控制器(Model-View-Controller,MVC)架构:
Https://jersey.github.io/license.html
我知道 OP 要求使用 REST,但是如果这是为了内部通信,那么认真考虑使用消息队列或其他异步 RPC (Finagle)来代替传统的 REST,如果您的需求与这些系统匹配的话。
如果必须是经典的 HTTP REST (外部) ,我会在 RestEasy或 新泽西之间做出选择,因为大量的思想共享被放入这两个项目中。
另见: 休息客户端的 Java?
如果要使用 JBoss 7.x,必须使用 RestEasy,因为它集成在 JBoss 中。要在 JBoss 7.x 中使用 Jersey,必须禁用 RestEasy,而且这很复杂!
在选择要使用的实现时,请记住: 如果您试图将 Jersey Web 服务部署到 JBOSS 7.1,它将无法工作。这个错误将会发生:
Only one JAX-RS Application Class allowed
这是因为 RESTEasy 与 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