我刚刚听说过Apache Wink,我想知道它与Jersey或JBoss RESTEasy相比有什么区别。在其他两个不能做的事情中可以做什么?
我们一直在为一些内部项目使用Jersey,主要是因为它很简单,但是我真的无法弄清楚是什么使其他两个更好,因此我考虑转换。有没有人有任何用例适合这些填充?
我刚刚听说过Apache Wink,我想知道它与Jersey或JBoss RESTEasy相比有什么区别。在其他两个不能做的事情中可以做什么?
我们一直在为一些内部项目使用Jersey,主要是因为它很简单,但是我真的无法弄清楚是什么使其他两个更好,因此我考虑转换。有没有人有任何用例适合这些填充?
Answers:
https://jersey.github.io/license.html
我知道OP请求REST,但是如果这是用于内部通信,请认真考虑使用消息队列或其他异步RPC(Finagle)代替传统的REST(如果您的要求与那些系统匹配)。
如果它必须是经典的HTTP REST(外部),那么我会在RestEasy或Jersey中进行选择,因为这两个项目的大部分精力都放在了这两个项目上。
另请参阅:Java的其余客户端?
在选择要使用的实现时,请记住以下几点:如果尝试将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>
如果要使用JBoss 7.x,则必须使用RestEasy,因为它已集成在JBoss中。要将Jersey与JBoss 7.x一起使用,您必须禁用RestEasy,这很复杂!