Axis2 ile Web Servisleri

Axis2 kullanma sebebini önceki yazımızda değinmiş olsak da burada kısaca hatırlayalım. Öncelikle Axis2, Axis’e nazaran daha yeni bir teknoloji kullanıyor. Bu teknoloji bize daha hızlı sonuçlar, Java EE ile uyumluluk gibi özellikler sunuyor. Bu yazımızda ise Eclipse Indigo ortamında Axis2 web servislerinin nasıl oluşturulacağına bakacağız. Aynı zamanda servislerimizi Tomcat 7.0 üzerine yükleyeceğiz.

Gereksinimleraxis2

Öncelikle tabi ki de Axis2 dağıtımına ihtiyacımız olacak. Normalde eğer Java EE uyumlu bir sunucu kullanıyorsanız bu kadarı sizin için yeterli olacaktır. Fakat Tomcat 7.0 gibi “Servlet Container” diye tabir ettiğimiz sunucularda Axis2 çalıştırmak için Axis2’nin WAR uzantılı versiyonuna da ihtiyacınız olacaktır. Bunu isterseniz indirebilirsiniz ya da doğruca Ant ile kendiniz oluşturabilirsiniz.

Bunun haricinde Tomcat 7.0’a ve Eclipse Indigo’ya ihtiyacınız olacak. Fakat bunları daha önce kullandığınızı ve sisteminizde bulunduğunu varsayıyorum.

Kurulum

Şimdi Axis2’nin nasıl kurulacağına bakalım. Öncelikle indirdiğiniz dosyaları bildiğiniz bir yere çıkartın. Ben genel olarak “C:\Program Files\Apache Software Foundation” şeklinde bir dosya yolu kullanıyorum. Bu dosya yoluna çıkardığınızda “C:\Program Files\Apache Software Foundation\axis2-1.6.2” şeklinde bir klasör elde ediyoruz. Biz bu klasöre yazı boyunca AXIS2_HOME şeklinde değineceğiz. WAR dosyasını ise TOMCAT_HOME\webapps klasörüne çıkartabilirsiniz.

Sırada Eclipse’e Axis2 dosyalarının yolunu tanıtmak var. Bunun için Eclipse’inizi açıyorsunuz.  Ardından “Window->Preferences” seçiyorsunuz. Buradan sağ taraftaki listeden WebServices bölümünü genişletiyorsunuz. Eğer Eclipse’in Java EE için olan sürümünü indirdiyseniz burada Axis2 sekmesini göreceksiniz. Eğer Eclipse’in Java EE için olan sürümü değilse sizinki Axis2 için olan eklentileri kurmanız gerekecektir.

Axis2 sekmesine geldiğinizde size “Axis2 Runtime Location” bilgisini soracaktır. Buraya AXIS2_HOME bilgisini giriyorsunuz.  Şimdi örnek bir web servis yazmaya başlayabiliriz.

Web Servisin Yazılması

Öncelikle şunu belirteyim. JAX-WS’nin sağladığı annotation özelliği Axis2 ortamında desteklense bile biz annotation kullanmayacağız. Bunun yerine Axis2 ile gelen Java2Wsdl komutunu kullanacağız. Tabi bunu doğruca kendimiz yapmayacağız Eclipse ortamını kullanarak bunu otomatik olarak gerçekleştireceğiz.

Projenin Olusturulması

Bunun için öncelikle bir “Dynamic Web Project” oluşturuyoruz. Oluşturma sırasında Projemizin Adını Axis2WebService şeklinde seçip Modify seçeneğini seçiyoruz.

Açılan pencerede Axis2 seçeneğini seçiyoruz.

Buradan sonra web.xml’in oluşturulacağına emin olarak projemizi oluşturuyoruz.

Örnek Web Servis Sınıfının Yazılması

Şimdi ise örnek web servisimizi yazalım. Her şeyi olabildiğince temel halde tutmak için, toplama yapan bir sınıf oluşturalım. Bu sınıf com.bahadirakin.service paketi altında bulunsun ve adı SimpleService olsun.

SimpleService.java

package com.bahadirakin.service;

public class SimpleService {
public int add(int first, int second) {
return first + second;
}
}

Web servisimizi oluşturacağımız sınıf hazır. Şimdi ise servisimizi oluşturalım. Eğer daha önce Axis ya da CXF ile deneyiminiz varsa buradan sonra anlatılanların aynısı olduğunu göreceksiniz. Projeye sağ tıklayıp “New->Other->Web Service” seçeneğini seçiyoruz. Burada karşımıza çıkan alanı aşağıdaki gibi dolduruyoruz.

[note_box]Bu şekilde doldururken sunucu olarak Tomcat 7.0 seçildiğini ve Web Service Runtime olarak ta Axis2 seçildiğine dikkat ediniz.[/note_box]

 

Bir sonraki adımda service.xml dosyasının oluşturulacağından emin olunuz. Sonra sunucunuzu başlatınız ve servisinizin oluşturulmasına izin veriniz.  Daha sonra çalışan Tomcat’inizi durdurun.

Servisin Test Edilmesi

Buradan sonra yapılması gereken tek şey servisinizin çalışıp çalışmadığını test etmektir. Bunu iki türlü yapabilirsiniz:

  1. Oluşturduğunuz Axis2WebService projenizi doğrudan tomcat üzerinde çalıştırır ve test edersiniz.  Bunu ister Eclipse üzerinden isterseniz WAR dosyası haline getirerek yapabilirsiniz
  2. Axis2WebService projesinin servislerini AAR(Axis Archive File) şeklinde sıkıştırırsınız. Ardından axis2.war dosyasını tomcat’e yüklersiniz. Bu axis2 uygulamasına ise AAR dosyasını yüklersiniz ve test edersiniz.

Tomcat Üzerinde Test Edilmesi

Tomcat üzerinde test etmek için Axis2WebService uygulamanızı tercih ettiğiniz yöntemle Tomcat üzerine yükleyiniz. Ardından aşağıdaki linke giderek test edebilirsiniz.

Axis2 Üzerinde Test Edilmesi

Axis2 üzerinde test etmeden önce AAR dosyamızı oluşturmamız gerekiyor. Bunun için Axis2WebService projesindeki “Web Content->Web-INF->Services->SimpleService” klasörüne geliyoruz.

Bu klasör için bir komut satırı açıp aşağıdaki komutu çalıştırıyoruz.

  • ·jar cvf SimpleService.aar com META-INF

[info_box]Bu komutun sizde sorunsuz bir şekilde çalışması için JDK’nın yüklü olması ve JAVA_HOME\bin yolunun, PATH içerisinde olması gerekmektedir.[/info_box]

İndirdiğiniz axis2.war dosyasını zaten kurulum sırasında tomcat klasörünüze atmıştınız. Şimdi yapmanız gereken http://localhost:8080/axis2 adresine gitmek. Buradan Adminstration linkine tıklıyoruz. Açılan pencereye aşağıdaki bilgileri giriyoruz:

  • Kullanıcı Adı: admin
  • Şifre: axis2

Bu bilgileri isterseniz axis2.xml dosyası içerisinden değiştirebilirsiniz. Buradan “Tools->Upload Service” seçeneğini seçiyoruz. Açılan pencerede önceden oluşturduğumuz AAR dosyasını giriyoruz ve servisimizi yüklüyoruz.

Ardından aşağıdaki linke giderek test edebilirsiniz.

Sonuç

Sonuç olarak Web Servislerimizi oluşturmuş ve test etmiş olduk. Fakat daha hiç web servislerimizi test etmedik. Web servislerinizi isterseniz kendiniz istemcilerinizi yazarak test edebilir isterseniz de programlardan yardım alabilirsiniz. Eğer kendi istemcilerinizi yazacaksanız Axis ya da Axis2 istemcilerini kullanabilirsiniz. Genel olarak web uygulamalarında Axis2 istemcisini, konsol ve masaüstü uygulamalarında ise Axis işlemcisini kullanmanızı tavsiye ederim. Eğer mobil uygulama geliştiriyorsanız oturup kendi istemcinizi yazmanız en doğrusu olacaktır.

Bunun yanı sıra servislerinizi SoapUI gibi gelişmiş ara yüzlerle çalıştırabilirsiniz. Eğer stres testi yapmak istiyorsanız da size Apache JMeter aracını öneririm.

End of Line