Java ve axis2 framework ile web service yayınlamak

12
Java ve Axis2 Framework ile WebService Yayınlamak Herkese merhaba arkadaşlar bu yazıda sizlere Axis2 Webservice altyapısı ile nasıl webservice yayınlanabildiğinden bahsedeceğim. Axis2 Webservice Framework Axis2 Wersevice Framework’u Apache tarafından geliştirilmiştir. Axis2 gücü ve esnekliği sayesinde açık kaynak kodlu dünyanın vazgeçilmez Webservice Framework’u olmuştur. Axis2 ile birlikte SOAP 1.1, SOAP 1.2 ve REST tipinde servisler yayınlamak mümkündür. Bu üç tip iletişim protokolunu destekler. Axis2 Webservice Framework’u aşağıdaki linkten indirilebilir. http://axis.apache.org/axis2/java/core/download.cgi Axis2 Webservice Framework’u “Preferences” sekmesinden dosya dizini belirtilerek yüklenir. Başarı ile yüklendi yazısı görüldüğünde kullanıma hazır anlamına gelmektedir.

description

Java ve axis2 framework ile web service yayınlamak

Transcript of Java ve axis2 framework ile web service yayınlamak

Page 1: Java ve axis2 framework ile web service yayınlamak

Java ve Axis2 Framework ile WebService Yayınlamak

Herkese merhaba arkadaşlar bu yazıda sizlere Axis2 Webservice altyapısı ile nasıl webservice

yayınlanabildiğinden bahsedeceğim.

Axis2 Webservice Framework

Axis2 Wersevice Framework’u Apache tarafından geliştirilmiştir. Axis2 gücü ve esnekliği sayesinde

açık kaynak kodlu dünyanın vazgeçilmez Webservice Framework’u olmuştur. Axis2 ile birlikte SOAP

1.1, SOAP 1.2 ve REST tipinde servisler yayınlamak mümkündür. Bu üç tip iletişim protokolunu

destekler.

Axis2 Webservice Framework’u aşağıdaki linkten indirilebilir.

http://axis.apache.org/axis2/java/core/download.cgi

Axis2 Webservice Framework’u “Preferences” sekmesinden dosya dizini belirtilerek yüklenir. Başarı

ile yüklendi yazısı görüldüğünde kullanıma hazır anlamına gelmektedir.

Page 2: Java ve axis2 framework ile web service yayınlamak

Eclipse ile Dynamic Web Project

Eclipse üzerinde yeni bir dinamik web projesi aşağıdaki gibi açılabilir.

Ardından projeye ait ayarlamalara geçilir. Aşağıdaki ekranda olduğu gibi “Target runtime” ayarı

“Apache Tomcat 7” şeklinde ayarlanır. “Dynamic Web module Version” ayarı ise “2.5” olarak

setlenir.

Page 3: Java ve axis2 framework ile web service yayınlamak

Proje oluşturulduktan sonra aşağıdaki package yapısı kurulmalıdır.

1. “ebookservice”

1.1. “core”

1.2. “service”

“package” yapısı kurgulandıktan sonra, projeye sağ tıklayıp yeni bir “Source Folder” eklenir. “Source

Folder” ‘ lar Java tarafında kaynakların tutulduğu özel sistem klasörleridir.

Page 4: Java ve axis2 framework ile web service yayınlamak

“Source Folder” ismi “resources” olarak belirlenir. “resources” klasörü altına EclipseLink JPA’nın

ihtiyaç duyduğu Persistence XML dosyası konulacaktır. Ancak, JPA’nın bu dosyayı bulabilmesi için

META-INF klasörü altında olmalıdır. META-INF klasörü yaratılır ve XML dosyası oluşturulur.

“persistence.xml” dosyasının içeriği aşağıdaki gibidir.

<?xml version="1.0" encoding="UTF-8"?>

<persistence version="2.0"

xmlns="http://java.sun.com/xml/ns/persistence"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/persistence

http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

<persistence-unit name="bookdb.mysql" transaction-

type="RESOURCE_LOCAL">

<class>ebookservice.core.Ebook</class>

Page 5: Java ve axis2 framework ile web service yayınlamak

<properties>

<property name="javax.persistence.jdbc.url"

value="jdbc:mysql://localhost:3306/BookDB"/>

<property name="javax.persistence.jdbc.password"

value=""/>

<property name="javax.persistence.jdbc.user"

value="root"/>

<property name="javax.persistence.jdbc.driver"

value="com.mysql.jdbc.Driver"/>

<property name="eclipselink.ddl-generation"

value="create-tables" /> <!-- none / create-tables / drop-and-

create-tables -->

<property name="eclipselink.ddl-generation.output-

mode" value="database" />

</properties>

</persistence-unit>

</persistence>

“core” package içinde Entity sınıfları ve veri servisi yapan sınıf bulunacaktır. “service” package’ı içinde

ise Webservice yayını için kullanılacak olan sınıf yer alacaktır.

Ebook POJO Sınıfı

package ebookservice.core;

import java.io.Serializable;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.Table;

@SuppressWarnings("serial")

@Entity(name="Ebook")

@Table(name="Tbl_EBook", schema="BookDB")

public class Ebook implements Serializable {

//Primary Key Kolonu

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

@Column(name="book_id")

private Long id;

//Tablonun kolonlari ...

@Column(name="book_name")

private String bookName;

Page 6: Java ve axis2 framework ile web service yayınlamak

@Column(name="book_author")

private String bookAuthor;

@Column(name="book_page_count")

private String bookPageCount;

public Ebook() {}

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public String getBookName() {

return bookName;

}

public void setBookName(String bookName) {

this.bookName = bookName;

}

public String getBookAuthor() {

return bookAuthor;

}

public void setBookAuthor(String bookAuthor) {

this.bookAuthor = bookAuthor;

}

public String getBookPageCount() {

return bookPageCount;

}

public void setBookPageCount(String bookPageCount) {

this.bookPageCount = bookPageCount;

}

}

Yukarıdaki Entity sınıfı “Tbl_Ebook” tablosundaki bir satır kaydın veri modelini temsil eder.

Veritabanındaki satır halindeki kayıtları alıp Entity listesi halinde bir üst katmana verecek olan servis

“DataService” olarak adalndırılır. Bir üst katman ise webservice sınıfını oluşturan ve veriyi web

üzerinden yayına açan sınıfın ta kendisidir.

package ebookservice.core;

import java.util.List;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

Page 7: Java ve axis2 framework ile web service yayınlamak

import javax.persistence.criteria.CriteriaBuilder;

import javax.persistence.criteria.CriteriaQuery;

public class DataService {

public static List<Ebook> getEbooks() {

//Veritabani baglantisi kurar.

EntityManagerFactory entityManagerFactory =

Persistence.createEntityManagerFactory("bookdb.mysql");

EntityManager entityManager =

entityManagerFactory.createEntityManager();

//Native SQL veya JPQL yerine Criteria ile sorgulama

yapilir.

CriteriaBuilder criteriaBuilder =

entityManager.getCriteriaBuilder();

//CriteriaBuilder uzeirnden Query olusturulur.

CriteriaQuery<Ebook> criteriaQuery =

criteriaBuilder.createQuery(Ebook.class);

//Tablodaki kayitlar liste halinde dondurulur.

return

entityManager.createQuery(criteriaQuery).getResultList();

}

}

Webservice sınıfı aşağıdaki gibidir. Bu sınıf içindeki “getEbooks” metodu veriyi dışarıya açacak olan

metoddur.

package ebookservice.service;

import java.util.List;

import ebookservice.core.DataService;

import ebookservice.core.Ebook;

public class EbookService {

public List<Ebook> getEbooks() {

return DataService.getEbooks();

}

}

Eclipselink JPA için gerekli olan kütüphaneler WEB-INF klasörü altındaki “lib” isimli klasöre kopyalanır.

Page 8: Java ve axis2 framework ile web service yayınlamak

“EbookService” sınıfı üzerine sağ tıklayıp Webservice oluşturma işlemi başlatılır.

Daha sonra webservice’in hangi kütüphaneyi kullanacağı hangi Uygulama Sunucusuna göre konfigüre

edileceği aşağıdaki gibi ayarlanır.

Page 9: Java ve axis2 framework ile web service yayınlamak
Page 10: Java ve axis2 framework ile web service yayınlamak

Webservice oluşturma işlemi böylece tamamlanır. Ardından tarayıcı üzerinden webservice’in yayına

alınıp alınmadığını bir WSDL dosyası isteğinde bulunarak anlayabiliriz. Görüldüğü üzere aşağıdaki gibi

WSDL dosyası tarayıcıya yüklenmiştir.

Page 11: Java ve axis2 framework ile web service yayınlamak

Tarayıcı üzerinden webservice URL’ın sonuna çağrılmak istenen metodun ismi yazılır ve parametre

alıyor bu parametrelerde geçilir.

http://localhost:8080/EbookService/services/EbookService/getBooks

yukarıdaki URL çağrıldığında aşağıdaki gibi sonuç kümesi veritabanından alınıp liste halinde yayına

verilir.

Page 12: Java ve axis2 framework ile web service yayınlamak

Veritabanı tarafındaki kayıtlar aşağıdaki gibidir.

Umarım yararlı bir yazı olmuştur. Bir sonraki makalemde görüşmek dileğiyle ...

Batuhan Düzgün

Bilgisayar Mühendisi

Endüstri Mühendisi