Tuesday, July 29, 2014

JAX-RS Tutorilas: Hello World Example

Following is simple JAX-RS tutorial, which sends “Hello World” text as response string using JAX-RS API and Jersey implementation.
Technologies and Tools used in this article:

1.    JDK 
2.    Eclipse 
3.    Tomcat
4.    Maven 
5.    Jersey 1.8

Create Maven Web Project

Create a Maven web project and name it "helloworld" .
  • File -> New -> Other -> Maven Project -> Next
  • Select maven-archetype-webapp
  • Select Next
  • Type Group Id, Artifact Id and Package name
  • And select Finish

Add Project Dependencies

Add Jersey repository using Maven. Use following URL to get appropriate repository.
Now update pom.xml file.
File : pom.xml

<project ... >




Create REST Service

Now it is time to create a class which serves as REST service.
Create class named “RestService” and a public method “getMessage
package com.zain.restapi;

import javax.ws.rs.core.Response;
import javax.ws.rs.GET;
import javax.ws.rs.Path;

public class RestService {

 public Response getMessage() {

  String message = "Hello World!";

  return Response.status(200).entity(message).type("text/plain").build();


@Path annotation act as routing which map incoming URI to appropriate Class

Update web.xml for Jersey configuration

In web.xml, add servlet with class “com.sun.jersey.spi.container.servlet.ServletContainer

File : web.xml

<web-app  version="2.4"


Directory Structure

Final project directory structure


To execute this application you need to type following URL
http://localhost:8080/{project name}/{jersey servlet name}/{@path param value}
here is actual URL for this tutorial.

Source Code

Download source code from this Github link



Sunday, July 27, 2014

Sass Tutorials

Sass (Syntactically Awesome Stylesheets) is scripting language which produces Cascading Style Sheets (CSS).

Sass is compatible with all CSS version and has assorted features. It is open source and developed in Ruby.

What does Sass do?

In simple terms by using Sass and its features we can create robust and large Style sheet with less effort and in less time.

How to Install Sass?

Sass requires Ruby, so if you are using Windows System then you need to install Ruby first.
Here is URL of Ruby Installer.

Otherwise if you use Mac or Linux System then you don’t need Ruby, it is pre-configured.

Use following commands to install Sass

sudo gem install sass

use following command to verify  Sass is installed properly or not.

sass  -v

To begin with Sass, create Sass “main.scss” file and CSS “main.css” file

Then run following command

sass --watch main.scss:main.css

It will update main.css file whenever you do changes and save Sass file.

Sass Script

1. Variable

Sass variable is use to store information at one place and can be used at various place through out the whole Style Sheet.

$base-font: Arial, sans-serif; $base-color: #555;
h1{ font: 100% $base-font; color: $base-color; }

2. Nesting

Nesting is associated to CSS control structure define under enclosing brackets.

section {
  div {
    padding: 10px;
    position: relative;  }
  p { margin: 10px}
Which produce following CSS style.

section div {
  padding: 10px;
  position: relative;

section p {
  margin: 10px;

3. Mixins

Mixins allow you to group set of CSS code and reuse it by including whole set of those code inside other CSS selectors. it looks like function with parameter.

@mixin border-radius($box-sizing) {   -webkit-box-sizing: $box-sizing;
 $box-sizing;  -ms-box-sizing: $box-sizing;  box-sizing: $box-sizing; } .container{ @include border-radius(border-box); }

4. Extends

Extends is like inheritance where you can share CSS properties from one selector to another.

.button {
  padding: 10px;
  height :30px;
  line-height: 30px;

  @extend .button;
  background: red;
.green-button {
 @extend .button;
 background: green;

5. Partials / Import

Partials are Sass files starts with underscore in beginning of their names.  underscore indicate Sass that it is a Partial and Sass does not convert it into CSS file. you rather include this Partial in other Sass files using @import keyword. Partials create structure of Style files and can be reuse in many other files.

// _base.scss

body {
  font-family : Arial, Verdana;
  margin: 0 10px;
// home.scss

@import 'base';

p {
    background-color: #eee;

6. Operators

Sass provides +, -, *,  % and / operators to perform mathematical operations.

$width: 900px;

.md-1 {
  width: $width;

  width: $width/2;

  width: $width/4;



Thursday, July 24, 2014

JAX-RS Tutorials: REST API using Java


JAX-RS is API specification for RESTful web services using Java. RESTful web services is implementation of REST (Representational State Transfer) which is architectural design for distributed system or in general we can say JAX-RS is a set of APIs to develop REST service. 

This is a brief introduction about REST and JAX-RS. You can find more information on REST on Wiki and JAX-RS Official Site.

What is REST?

  1. Representational state transfer is an abstraction of the architecture of the World Wide Web. More precisely, REST is an architectural style consisting of a coordinated set of architectural constraints (source Wikipedia)

    As JAX-RS is only a specification, we need to use it's implemented library to create RESTful web service.

  2. Following are such list of libraries

    • RESTeasy, JBoss's implementation.
    • Restlet, created by Jerome Louvel, a pioneer in REST frameworks

    For this JAX-RS tutorials set we will use Jersey library and Maven for dependency management.

Quick Start

Following are some start-up JAX-RS examples.

  • Simple Hello World Example 
    JAX-RS tutorial, which sends “Hello World” text as response string using JAX-RS API and Jersey implementation.
  • JSON Response Example