Skip to main content

RESTful Service Java Implentaions

Jax RS API and its implementation Clarification

  1. The API does not provide any implementation code (concrete classes that do the actual processing). The API only specifies interfaces, annotations, exceptions. There can be concrete classes with some very basic, core behavior. The idea of standard APIs, like JAX-RS, is to give developers something to code against regardless of the underlying platform and implementation.
  2. Jersey, RestEasy and CXF are the implementations - it includes many concrete classes that actually handle the business promised by the API according to JSR  (Java Specification Request) 311. In JAX-RS case - it handles requests and responses.

Apache CXF - CXF is the implementation from Apache Group.

Jersey - the JAX-RS Reference Implementation from Sun.
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.
RESTEasy - JBoss's JAX-RS project. 
If you use JBoss/SEAM you might find REST easy integrates a better option.

Note: Since Jboss acquired by RedHat Linux, Jboss origination has re-named the open Source Jboss to Wildfly and started releasing the version of Jboss after 7.0. Now the current Wildfly (Jboss) version is  10. Check for more info at

Now RedHat Jobss now called as Jboss EAP and enterprice version is now licensed.


Popular posts from this blog

Maven Build Life Cyles

Following are the maven build life cycles.

Clean - Removes the generated files in 'target' folder.

command : mvn clean

Validate - It validates your project and verify all the necessary information is there in project or not.

mvn  valiate

Compile - It compiles your project code.

mvn compile

Package - It takes the compiled code and packaged to JAR/WAR/EAR. It also compiles your code if your code is not compiled.

mvn package

Install -   It takes the packaged code and puts in your local maven repository (M2_HOME). It also does the compile and package if these are not already been done.

mvn install

Deploy - It takes the package and puts in remote repository for sharing accross team members or for other projects.

mvn deploy

FYI - Above commands can be used as variety of combinations.
e.g. mvn clean install
mvn clean package
mvn clean compile package install

To skip the tests to run 
mvn clean install -DskipTests

NO SQL Types and vendors in market


KEY - VALUE Store  - Similar to a  MAP.
   e.g. Dynamo DB or REDIS

DOCUMENT Sore  - Similar to KEY-VALUE, value can be JSON/XML and key will be unqiuely idnetified this document.
   e.g. Coutch DB or mongoDB.

Column Store - Multi timentional table, identifying data with row and column numbers.
  e.g.  Cassandra or Apache HBase

Graph Store - Store relation between nodes (record entities). It has better transaction management
e.g. Neo4J and Orient DB.