Java ve axis2 framework ile web service yayınlamak
Upcoming SlideShare
Loading in...5
×
 

Java ve axis2 framework ile web service yayınlamak

on

  • 600 views

Java ve axis2 framework ile web service yayınlamak

Java ve axis2 framework ile web service yayınlamak

Statistics

Views

Total Views
600
Views on SlideShare
600
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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.
  • 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.
  • 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.
  • “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>
  • <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;
  • @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;
  • 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.
  • “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.
  • 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.
  • 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.
  • 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