- Easy to develop.
- Fast though not fast as some other frameworks here.
- Built on Netty, so it supports non-blocking I/O. This makes it excellent for RESTful applications where you need to handle remote calls in parallel.
- Probably largest community among frameworks reviewed here
- Quick project building and bootstrapping
- REST, JSON/XML, Web Sockets, non-blocking I/O
- Just refresh the browser to see the recent changes.
- Async support
- Available books
- Version 2.0 is one of the most controversial Java frameworks. Switch to Scala made some Java developers outraged.
- It does not offer backward compatibility; Play 2.X is a total rewrite of a Play 1.X.
- For a lightweight framework (it’s marketed this way), it become somewhat bloated over time.
- SBT. Intended as a Maven “killer”, never managed to outshine/replace it. It’s hard to understand and configure.
- Not a servlet
- Breaking changes across releases
- Mature and stable product
- Relatively fast and reliable
- Built around JAX-RS 2.0 specification
- Large community
- Enterprise ready
- Existing JBoss family environment
- Spring MVC integration
- EJB support
- Excellent security support – OAuth 2.0
- So-so documentation
- Does not provide a wide range of testing tools
- It relies to much on Spring.
- Enterprise framework
- Available for Java SE, Java EE, Google Web Toolkit, Google AppEngine, Android, OSGi environments
- vanilla JAX-RS supported (just like Jersey)
- Offers most advanced RESTful support
- HTTP, HTTPS, SMTP, XML, JSON, Atom, and WADL
- Other libraries are also supported
- Still under active development
- Smart url binding and full URI routing
- Available books
- Very steep learning curve
- Closed community, though openly active at StackOverflow
- Not that popular these days, mostly thanks to Play Framework and Jersey