Merhaba arkadaşlar bu yazımda web servisimiz üzerindeki bir java sınıfımızı xml formatında göstermeyi sağlayacağız.Bunun için XMLRoot anotasyonunu kullanacağız.Bu sayede web servisimiz üzerinde xml formatında verilerimizle işlemler yapcağız.
1)Projemizde kullanacağımız bağımlılıklarımızı pom.xml dosyamız içerisine ekleyelim.
[code lang=”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>0003-com.enesbyc-RESTful-XMLRoot</groupId>
<artifactId>0003-com.enesbyc-RESTful-XMLRoot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!– https://mvnrepository.com/artifact/com.sun.jersey/jersey-server –>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19</version>
</dependency>
<!– https://mvnrepository.com/artifact/com.sun.jersey/jersey-core –>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.19</version>
</dependency>
<!– https://mvnrepository.com/artifact/com.sun.jersey/jersey-servlet –>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.19</version>
</dependency>
</dependencies>
<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>3.0.0</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
[/code]
2)Web.xml dosyamız içerisinde jersey kullanacağımızı belirtelim.
[code lang=”xml”]
<?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" id="WebApp_ID" version="3.1">
<display-name>0003-com.enesbyc-RESTful-XMLRoot</display-name>
<!– Jersey kullanimi icin gerekli –>
<!– Jerseyi hangi paket içerisinde kullanacağımızı belirtiyoruz –>
<servlet>
<servlet-name>jersey-serlvet</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.enesbyc</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
[/code]
3)New->File->Class adımları izleyerek Product adında bir sınıf oluşturalım.Bu sınıfımız içerisinde XML alanlarını oluşturmuş oluyoruz.
[code lang=”java”]
package com.enesbyc;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
//XML formati kullancagimizi belirtiyoruz.
//Product isminde bir xml olusturulmus oluyor.
//Bu sinif üzerinden xml islemlerimizi artik yapabiliriz.
@XmlRootElement
//Tiplerin önemini belirtiyoruz.
@XmlAccessorType(XmlAccessType.NONE)
public class Product {
//XML içerisindeki propert olarak düsünebiliriz.
//product içerisinde productName ve productPrice
//alanlarini xml tipinde olusturuyoruz.
@XmlElement
String productName;
@XmlElement
String productPrice;
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getProductPrice() {
return productPrice;
}
public void setProductPrice(String productPrice) {
this.productPrice = productPrice;
}
}
[/code]
4)Product Servis sınıfımızı oluşturalım ve içerisinde web servis ayarlarımızı yapalım.
[code lang=”java”]
package com.enesbyc;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
//Url kismina /rest/product geldiginde yapilacaklari belirtiyoruz.
@Path("product")
public class ProductService {
//Url kismina /rest/product/info geldiginde yapilacaklari belirtiyoruz.
//XML tipinde verilerle islemler yapacagimizi belirtiyoruz.
@GET
@Path("info")
@Produces(MediaType.APPLICATION_XML)
public Product getProductInfo(){
Product product=new Product();
product.setProductName("Bottle");
product.setProductPrice("15");
return product;
}
}
[/code]
5)Projemizi çalıştıralım ve url kısmımızı /rest/product/info yazarak url’e giriş yapalım.Görüldüğü gibi xml formatında verilere ulaşmış olduk.
Bir sonraki yazımda görüşmek üzere…
