Red Hat's JBoss division has released the 1.0 version of JBoss RESTEasy, a framework that enables developers to write Representational State Transfer-based Web services in Java. RESTEasy is a fully certified and portable implementation of the JAX-RS specification. JAX-RS is also known as Java Specification Request (JSR) 311 -- the Java API for RESTful Web Services.
Red Hat's JBoss division has released the 1.0 version of JBoss
RESTEasy, a framework that enables developers to write Representational
State Transfer-based -- also known as "RESTful" -- Web services in Java.
JBoss fellow Bill Burke has been championing the effort and crowed
about the technology achieving a version 1.0 generally available
release on Jan. 21. "I am pleased to announce the first GA release of
JBoss RESTEasy," Burke said in a blog post on the technology
is a fully certified and portable implementation of the JAX-RS
specification. JAX-RS is also known as Java Specification Request (JSR)
311 -- the Java API for RESTful Web Services. JAX-RS is a new Java
Community Process (JCP) specification that provides a Java API for
RESTful Web Services over the HTTP protocol.
"REST is a set of architectural principles that defines why the
World Wide Web has been so successful at scaling so massively and how
you can apply those principles to modern distributed applications,"
Burke told eWEEK. "While not protocol-specific, when people talk about
REST they usually are talking about using HTTP in a RESTful manner. I
like to think of REST as the rebirth or rediscovery of HTTP.
Distributed technologies like WS-*/SOAP [the web services stack and
Simple Object Access Protocol] have used HTTP solely as a transport
protocol when in reality it is a very rich protocol -- caching and
content-negotiation are two examples."
Moreover, Burke argues that "Developers like REST because it
generally is much simpler than putting together a SOAP stack. Most
languages and platforms support HTTP while this is not so true with
WS-*. Also, interoperability is always an issue between vendor stacks
with SOAP. With REST you focus on what matters, the exchanged data
format -- X M L, JSON, whatever -- and let HTTP do all the heavy
Meanwhile, RESTEasy can run in any Servlet container, but tighter
integration with the JBoss Application Server is also available to make
the user experience nicer in that environment, Burke said. While JAX-RS
is only a server-side specification, RESTEasy has innovated to bring
JAX-RS to the client through the RESTEasy JAX-RS Client Framework. This
client-side framework allows you to map outgoing HTTP requests to
remote servers using JAX-RS annotations and interface proxies, Burke
"From a Java perspective, you've always been able to write RESTful
applications using a Servlet container," Burke said. "What RESTEasy
does is make you more productive at writing RESTful applications
through the new JAX-RS standard that will be part of Java EE
[Enterprise Edition] 6."
Additional features of the RESTEasy technology include: a fully
certified JAX-RS implementation; portability to Tomcat or any
application server that runs on Java Development Kit (JDK) 5 or higher;
it is an embeddable server implementation for JUnit testing; it has a
rich set of providers for: XML, JSON, YAML, Fastinfoset, Atom, and
more; it has Java Architecture for XML Binding (JAXB) marshalling into
XML, JSON, Fastinfoset, and Atom as well as wrappers for arrays, lists,
and sets of JAXB Objects; it features asynchronous HTTP (Comet)
abstractions for JBoss Web, Tomcat 6, and Servlet 3.0; it has
Enterprise JavaBeans (EJB), Spring, and Spring MVC integration; and it
features a client framework that leverages JAX-RS annotations so that
you can write HTTP clients easily (JAX-RS only defines server bindings).
Moreover, for his part, Burke said he sees REST overtaking SOAP.
"From an adoption standpoint, I believe that REST has a high
probability of overtaking SOAP/WS-* as a preferred way to integrate SOA
[Service Oriented Architecture] applications," he said. "Once
developers start realizing how difficult it is to get these WS-* stacks
up and running, let alone, interoperating with one another, they'll see