如何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(外部),我会selectRestEasy或Jersey,因为大部分的头脑分享都放在这两个项目中。
另请参阅: 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,这很复杂!
- 为什么Spark作业在使用org.apache.spark.shuffle.MetadataFetchFailedException时失败:在猜测模式下丢失shuffle 0的输出位置?
- SSL收到的logging超出了允许的最大长度。 (错误代码:ssl_error_rx_record_too_long)
- .htaccess密码保护有多安全?
- Spring安全与Apache Shiro
- 使用tomcat运行一个php应用程序?
- 如何在Windows 7上安装Apache的工作台?
- 如何通过SSH在ubuntu服务器上检查php和apache的存在
- 同一台服务器上的Apache和Node.js
- 在Laravel 5+ Ubuntu 14.04上获得500内部服务器错误