Java JAX-RS and Jersey kullanarak RESTful Servis yapımı

RESTFul servisimizi yapmak için önce yeni proje oluşturalım.

File => New => Dynamic Web Project.

Proje adı olarak ben MobileService ismini kullandım.

Oluşturulan projede WEB-INF klasörü altında web.xml dosyası oluşmalı.

 

Eğer yoksa web.xml dosyasını oluşturmak için

Proje (Sağ Tık) > Java EE Tools > Generate Deployment Descriptor Stub

 

Projemizi Maven projesine çevirelim.

Bunun için Proje(Sağ Tık) > Configure > Convert To Maven Project

 

Maven projesine çevirme işlemini tamamlayalım.

 

pom.xml dosyamıza Restful için gerekli jar dosyalarımızı ekleyelim.

  • asm.jar
  • jersey-bundle.jar
  • json.jar
  • jersey-server.jar
POM.XML

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>MobileService</groupId>
  <artifactId>MobileService</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
		<dependency>
			<groupId>asm</groupId>
			<artifactId>asm</artifactId>
			<version>3.3.1</version>
		</dependency>
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-bundle</artifactId>
			<version>1.19</version>
		</dependency>
		<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
			<version>20140107</version>
		</dependency>
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-server</artifactId>
			<version>1.19</version>
		</dependency>
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-core</artifactId>
			<version>1.19</version>
		</dependency>
	</dependencies>
  </project>

WEB.XML dosyamızı güncelleyelim.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>MobileService</display-name>
 	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
 
	<servlet>
		<servlet-name>Jersey Web Application</servlet-name>
		<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Jersey Web Application</servlet-name>
		<url-pattern>/web/*</url-pattern>
	</servlet-mapping>
</web-app>

Burada
url-pattern /web/* url-pattern
kısmında link üzerindeki yönlendirmeyi yapmak için ekledik. http://localhost:8080/MobileService/web/UserInfoService/

 

UserInfoService.java

Burada geçiçi bir Json Array oluşturdum.Link ile gönderilen parametreyide kullanacak örnek olması için.

 
package service;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

import org.json.JSONArray;
import org.json.JSONObject;

@Path("/UserInfoService")
public class UserInfoService {

	@GET
	@Produces("application/json")
	@Path("{param}")
	public Response getUser(@PathParam("param") String deger) throws Exception {
		
		
		JSONArray array = new JSONArray();
		JSONObject jsonObject = new JSONObject();
		String ad = deger;
		String numara = "0535";
		jsonObject.put("ad", ad);
		jsonObject.put("no", numara);
		array.put(jsonObject);
		array.put(jsonObject);
		array.put(jsonObject);
		
		return  Response.status(200).entity(array.toString()).build();
	}

}

Servisimizi hazırladık.Projemiz jar dosyalarını güncellemesi için sırayla adımları uygulayalım

1. Project -> Clean
2. Project -> Right click -> Maven -> Update Project
3. Project -> Right click -> Run As.. -> Maven Build) -> Maven Clean
4. Project -> Right click -> Run As.. -> Maven Build) -> Maven İnstall
BUILD SUCCESS olarak görmeniz gerekli.
Artık servisimizi Tomcat Server’ın altına atabiliriz. Tomcat server nasıl kurulur bilmiyorsanız yazımıza bakın.

Ve RUN !

Tomcat ayağa kalktıktan sonra web tarayıcımızdan serverımızı tetikleyelim.

http://localhost:8080/MobileService/web/UserInfoService/COBAN

 

 

 

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir