How to choose between Jersey, Apache Wink and JBoss RESTEasy?

I just heard about Apache Wink , and I was wondering what differences it had compared to Jersey or JBoss RESTEasy . What can be done in one that the other two cannot?

We used Jersey for some of our internal projects, mostly for simplicity, but I can't figure out what makes the other two better than I could switch. Does anyone have any precedents for which the niche of each of them is filled?

+72
jersey apache jax-rs resteasy
Aug 11 '10 at 15:05
source share
4 answers

JAX-RS Implementations

Jersey

  • Link Implementation
  • Usually the cutting edge
  • It supports true asynchronous (i.e. network sockets, etc.) connections through Atmosphere or version 2.0.
  • Supports Spring and standard injection containers (e.g. @Inject).
  • Glassfish ties it.
  • It is much more modular than other JAX-RS projects.
  • He has a drummer URI Builder
  • Does not necessarily require a servlet container.
  • Grizzly bear
  • Netty support (very early).
  • Swagger Support
  • Type of missing OAuth 2.0. You will have to use other libraries.
  • Support for multiple MVCs via View
  • Hosting on java.net (minus, because the site is terribly slow from time to time).
  • Licensing is based on CCDL 1.1 and GPL-v2. Please ensure that you verify licensing in Jersey before using it for commercial use.

https://jersey.imtqy.com/license.html

Resteasy

Apache Wink (never used it)

  • I have no idea why this project exists.
  • Presumably, its high performance is focused.
  • The client has a client built on top of the HttpUrlConnection (which is a minus ... it must be pluggable, like Spring RestTemplate ).
  • Basically, Wink was developed at home by some corporate companies, and then provided by Apache.
  • Servlet container required.

Restlet

  • Very powerful but very sophisticated
  • Provides some low level REST support
  • No servlet container required

Apache cxf

  • Some interesting WADL support.
  • Reuse and merge JAX-RS with JAX-WS
  • Security support
  • W / Spring integration, although pretty annoying
  • Estimated auto-generation of client stubs

Other RPC-like systems

Message queues

Asynchronous RPC

My humble opinion

I know that the OP requested REST, but if it is for internal communication, seriously consider using either a message queue or another asynchronous RPC (Finagle) instead of the traditional REST, if your requirements correspond to these systems.

If this is a classic HTTP REST (external), I would choose either RestEasy or Jersey , since most of the mind got into these two projects.

Also see: Debugging clients for Java?

+111
Jun 06 2018-12-06T00:
source share

When choosing a use case, keep in mind that if you try to deploy a Jersey web service in JBOSS 7.1, this will not work. This error will happen:

Only one JAX-RS Application Class allowed 

This is because REST Easy comes bundled with JBOSS as the default JAX-RS implementation. This way, JBOSS will decide that this is the implementation you want to use, and will not load another JAX-RS implementation (like Jersey). To fix this, you need to add the following lines to the web.xml file:

  <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> 

Link: https://community.jboss.org/message/744530

+14
Mar 22 '13 at 11:24
source share

One of my favorite Jersey extensions is visible. Records make it easy to bind your data to a JSP page to implement the true Model-View-Controller (MVC) architecture:

+5
Aug 18 '10 at 13:25
source share

If you intend to use JBoss 7.x, you should use RestEasy, because it is integrated into JBoss. To use Jersey with JBoss 7.x, you need to disable RestEasy, and it's hard!

0
Dec 06 '12 at 16:21
source share



All Articles