Question

I've been doing some work with the JAX-RS reference implementation (Jersey). I know of at least two other frameworks (Restlet & Apache CXF).

My question is: Has anyone done some comparison between those frameworks and if so, which framework would you recommend and why?

Was it helpful?

Solution

FWIW we're using Jersey as its packed full of features (e.g. WADL, implicit views, XML/JSON/Atom support) has a large and vibrant developer community behind it and has great spring integration.

If you use JBoss/SEAM you might find RESTeasy integrates a little better - but if you use Spring for Dependency Injection then Jersey seems the easiest, most popular, active and functional implementation.

OTHER TIPS

Restlet has an extensive list of extensions for Spring, WADL, XML, JSON as well and many more, including an extension for JAX-RS API.

It is also the sole framework available in six consistent editions:

  • Java SE
  • Java EE
  • Google Web Toolkit
  • Google AppEngine
  • Android
  • OSGi environments

Its main benefits are:

  • fully symmetric client and server API when JAX-RS was designed for server-side processing
  • connectors for other protocols than HTTP (mapping to HTTP semantics) when JAX-RS is HTTP only
  • much broader feature scope including full URI routing control via the Restlet API (but can integrate with Servlet if needed)
  • full provision for NIO support

The JAX-RS API can be a good choice if you are restricted to JCP approved APIs (then don't use Spring or any extension of the JAX-RS projects like Jersey and RESTeasy!), but otherwise Restlet is the most mature framework (initially released in 2005) and will give you, in its 2.0 version, all the benefits of annotations combined with a powerful and extensible class-oriented framework.

For a longer list of features, please check this page.

Best regards, Jerome Louvel

Restlet ~ Founder and Lead developer ~ http://www.restlet.org

My team and I use Restlet extensively, but not its JAX-RS features. I can tell you that I've been very impressed with the Restlet developers and community; they're very active, engaged, responsive, and committed to a stable, efficient, reliable, and effective framework. I'm sorry I can't directly address your primary interest but I thought you might find my experience with Restlet valuable.

My colleague mentions why we are using RESTeasy for our current project in RESTful web services in Java EE with RESTeasy (JAX-RS):

Its reference implementation, Jersey, was not chosen because we had trouble integrating it well with EJB3 and Seam 2.0.

We are using the RESTeasy implementation of JAX-RS, because we had no trouble integrating it with our EJBs and Seam. It also has sufficient documentation.

There is another implementation from Apache, but I haven’t tried it because it uses an older version of JAX-RS.

Finally there is yet another framework for RESTful web services for Java called Restlet but we did not favour it because at the time of this writing, it is using a custom architecture, even though proper JAX-RS support is in the works.

It seems like there are 4 decent JAX-RS implementations, so you are probably ok with any of them. For what it's worth, I have found Jersey (1.0.2) really nice so far. My needs are quite modest, simple back-end service, take care of plumbing and so on. And that Jersey does quite nicely.

Found out that Apache Wink is very easy to work with, supports JAX-RS and has many features beyond the standard.

I would use no framework. Just the one that comes with your applications server. If you use specifics of one framwork you'll lose portability and you'll be in the hell of what if the vendor of the app server includes a different version of your favourite framework. I'll stick to jax-ws.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top