Home » Mimari, Yazar Blogları, Yeni Yazılar

JAX-RS 1.1 ile Pratik REST

21 Haziran 2010 1.664 views Yorumlar

Bu yazıyı Java Dergisi haziran/temmuz 2010 sayısında yayımlanan JAX-RS 1.1 ile REST mimarileri yazımı pratik bir çözümle desteklemek için kaleme aldım. REST mimarileri hakkında ki yazımı Java Dergisi mayıs/haziran 2010 sayısında bulabilirsiniz.

Java EE 6’nin bir parçası olan JAX-RS 1.1 spesifikasyonu ile örnek yazılım oluşturmak bu günlerde çok kolay değil, çünkü Java EE 6 yeni fırından çıktı ve Glassfish v3 [1] haricinde bir implementasyonu yok. Mevcut Eclipse Galileo 3.5 ile Java EE 6 yazılımı yapmakta mümkün değil. Mayıs 2010 gibi Eclipse platformunun Java EE 6 desteğini sağlaması bekleniyor. Peki mevcut aplikasyon serverleri Java EE 6 desteğini sağlayana kadar, JAX-RS 1.1 ile örnek bir yazılımı nasıl oluşturabiliriz? Bunu GlassFish Tools Bundle for Eclipse [2] ile yapabiliriz. Bu bir Eclipse 3.5.1 sürümü olup, Java EE 6 için gerekli yazılım araçlarını ihtiva etmektedir. Bu yazımda GlassFish Tools Bundle for Eclipse ile örnek bir JAX-RS 1.1 uygulamasının nasıl yapıldığını sizlere aktarmak istiyorum.

GlassFish Tools Bundle for Eclipse paketini edindikten sonra .exe dosyasını koşturarak, kurulum işlemini başlatabiliriz.


Resim 1

Kurulumun ardından kurulum için seçtiğimiz dizin içinde (resim 2) yer alan eclipse.exe dosyasına çift tıklayarak Eclipse sürümünü koşturabiliriz.


Resim 2


Resim 3

Resim 3’de görüldüğü gibi GlassFish Tools Bundle for Eclipse aslında bir Eclipse sürümü. Sun firması Eclipse’i bu hali ile Java EE 6 ile yazılım yapılabilir hale getirmiş. Resim 3’ün sağ alt köşesinde, server panelinde GlassFish v3 kaydı yer almaktadir. Edindiğimiz paket ile GlassFish v3 aplikasyon serveri de kullanım için hazır durumdadır. Bizim bu noktadan itibaren yapmamız gereken tek şey, bir Java web projesi oluşturarak, bu proje bünyesinde bir örnek REST kaynağı programlamak.

Resim 4

Projekt Explorer ya da Navigator paneli üzerinde sağ tuşa tıklayarak, yeni bir proje oluşturabiliriz. Resim 4’de yer aldığı gibi bir Dynamic Web Projekt oluşturuyoruz. Oluşturduğumuz bu projenin teknik ayarları resim 5’de yer almaktadır.

Resim 5

Resim 6

Resim 6’da oluşturduğumuz web projesi yer almaktadır. Yeni bir REST kaynağı oluşturmak için resim 7’de ki şekilde seçim yapıyoruz.


Resim 7


Resim 8

Resim 8’de görüldüğü gibi yeni bir REST kaynağı oluşturmak için RESTful Web Service from pattern (Java EE 6) seçeneğini seçiyoruz. Yeni oluşturduğumuz REST kaynağının özellikleri resim 9’da yer almaktadır.


Resim 9

Oluşturdugumuz yeni REST kaynağının kodu kod 1’de yer almaktadır.


Resim 10


package server;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("book")
public class MyResource
{
public MyResource() {
}

@GET
@Produces("application/xml")
public String getXml() {
return "test";
}
}

Kod 1

Kod 1’de görüldüğü gibi kaynak identifikatörü olarak (URI – Unified Resource Identifier book ismini kullanıyoruz. Bu şekilde kaynağımız http://localhost/book adresi altında erişilebilir hale geliyor.


<servlet>
    <servlet-name>Jersey Web Application</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>server</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

Kod 2

Kullandığımız JAX-RS 1.1 implementasyonu Jersey’dir [3]. REST kaynağımızı bu implementasyon bünyesinde GlassFish aplikasyon serverinde deploy edebilmemiz için web.xml üzerinde kod 2’deki gibi değişiklik yapmamız gerekmektedir.

 
Resim 11

Bu işlemlerinde ardında REST kaynağımız deploy edilebilir duruma gelmiştir. Aplikasyonumuzu deploy etmek için resim 11’de görüldüğü gibi server panelinden Add and Remove… menüsünü seçiyoruz. Bu şekilde Eclipse bünyesinde oluşturduğumuz web projesinin tümünü GlassFish serverinde deploy etmemiz mümkündür.

Resim 12

Aplikasyonumuzu deploy ettikten sonra resim 12’de yer aldığı gibi Start menüsünü seçerek aplikasyon serverini koşturuyoruz. Server çalışır durumda olsun; oluşturduğumuz REST kaynağına nasıl erişebiliriz? Bunun için Jersey implementasyonunda bir Client API mevcuttur. Kod 3 oluşturduğumuz REST kaynağına erişimi sağlamaktadır.


package client;

import java.net.URI;

import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;

public class RestClient {
public static void main(String[] args) {
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(getBaseURI());

System.out.println(service.path("/book/99999").accept(
MediaType.TEXT_PLAIN).get(String.class));

}

private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost:8084/RESTApp").build();
}
}

Kod 3

Yazar:
Özcan Acar
Email: acar@javadergisi.com
Websayfası: http://www.ozcanacar.com

Referanslar:

[1] https://glassfish.dev.java.net/
[2] http://download.java.net/glassfish/eclipse/
[3] https://jersey.dev.java.net/
[4] JAX-RS 1.1 ile REST Mimarileri

Last 5 posts in Mimari

  • Share/Bookmark
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 1 out of 5)
Loading ... Loading ...

Yorumlar »

Yorumlar

Yorumunuzu aşağıdaki form üzerinden ekleyebilirsiniz ya da kendi websitenizden trackback verebilirsiniz. RSS üzerinden yorumları takip etmenizde mümkün.

Kullanabileceğiniz etiketler:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Java Dergisi bir BT Press yayınıdır.

Logolar | Künye | İletişim | Yazarlar | Nasıl Yazar Olabilirim?