Tutorial ini menjelaskan bagaimana caranya mengembangkan aplikasi RESTful web services pada Java menggunakan Jersey yang mengimplementasi JAX-RS, Saya menggunakan Jersey 1.11 yang menggunakan implementasi dari JAX-RS 1.1. Kamu bisa download Jersey di sini. Pada tutorial ini saya menggunakan Eclipse Indigo, Tomcat 7 dan Jersey 1.11
Seperti biasa, buat dynamic web project di eclipse, lalu copy semua library pada folder Jersey yang baru saja kamu download ke folder “/WEB-INF/lib/”. Sekarang coba buat class Hello.java seperti dibawah ini :
package com.kusandriadi.ws;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class Hello {
@GET
@Produces(MediaType.TEXT_HTML)
public String helloHtml(){
return "<html> " +
"<title>" +
"Hello Kus Andriadi :D" +
"</title>"
+ "<body><h1>" + "Hello Kus Andriadi :D" +
"</body></h1>" +
"</html> ";
}
@GET
@Produces(MediaType.TEXT_PLAIN)
public String helloText(){
return "Hello Kus Andriadi";
}
@GET
@Produces(MediaType.TEXT_XML)
public String helloXML(){
return "<?xml version=\"1.0\"?>" +
"<hello> Kus Andriadi" + "</hello>";
}
}
Anotasi @Path(“/hello”) diatas maksudnya adalah jika ada request ke path “/hello” akan diolah oleh class ini, anotasi @GET akan menjawab request dari client (begitu juga dengan @POST, @DELETE dan @PUT jika digunakan) sesuai dengan HTTP Standard Methods. Anotasi @Produce berguna sebagai hasil respons dari server, apakah berbentuk text, xml, html, dst.
Jangan lupa untuk mendefinisikan Servlet Jersey di web.xml seperti ini :
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>HelloWS</display-name> <servlet> <servlet-name>Jersey</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.kusandriadi</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
Pada <param-value> arahkan ke package dimana class Hello tadi berasal. <url-pattern> disitu maksudnya adalah setiap url yang masuk dengan pattern “/rest/*” akan diolah oleh Servlet Jersey. Setelah selesai, mari kita membuat class Client untuk request ke class REST tadi. Buat project baru, copy semua library Jersey tadi ke project yang baru dibuat, lalu cukup buat class main seperti dibawah ini.
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import java.net.URI;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
/**
*
* @author Kus Andriadi
*/
public class ClientWS {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ClientConfig clientConfig = new DefaultClientConfig();
Client client = Client.create(clientConfig);
WebResource webResource = client.resource(getURI());
//respon dari uri
System.out.println(webResource.accept(MediaType.TEXT_PLAIN).get(ClientResponse.class).toString());
//xml
System.out.println(webResource.accept(MediaType.TEXT_XML).get(String.class).toString());
//html
System.out.println(webResource.accept(MediaType.TEXT_HTML).get(String.class).toString());
//text
System.out.println(webResource.accept(MediaType.TEXT_PLAIN).get(String.class).toString());
}
private static URI getURI() {
return UriBuilder.fromUri("http://localhost:8080/HelloWS/rest/hello").build();
}
}
Jalankan class main tersebut, lalu akan output seperti dibawah ini :
GET http://localhost:8080/HelloWS/rest/hello returned a response status of 200 OK <?xml version="1.0"?><hello> Kus Andriadi</hello> <html> <title>Hello Kus Andriadi :D</title><body><h1>Hello Kus Andriadi :D</body></h1></html> Hello Kus Andriadi
Jika masih ada error, ulangi langkah diatas, aplikasi ini sudah saya cek seharusnya tidak ada error :D, kamu juga bisa langsung menjalankan aplikasi ini dari eclipse. Langsung saja hit ke url “http://localhost:8080/HelloWS/rest/hello”. HelloWS disitu adalah nama project saya, jadi itu tergantung nama project yang anda buat.
Regards,

1 comment
anugrah baguz
27/01/2012 at 16:36 (UTC 7)
nice post gan…mau nyoba dlu
[Reply]