1 / 17

NETBEANS’TE AXİS 2 ile WEB SERVİS GELİŞTİRME

NETBEANS’TE AXİS 2 ile WEB SERVİS GELİŞTİRME. Hazirlayan Serkan Macit Kocaeli Universitesi Bilgisayar Muhendisligi Proje Calismasi. NETBEANS’TE AXİS 2 WEB SERVİS GELİŞTİRME. AXIS 2 Nedir?. Axis 2’nin bazı özellikleri şunlardır :

storm
Download Presentation

NETBEANS’TE AXİS 2 ile WEB SERVİS GELİŞTİRME

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NETBEANS’TE AXİS 2ileWEB SERVİS GELİŞTİRME HazirlayanSerkanMacit KocaeliUniversitesiBilgisayarMuhendisligi ProjeCalismasi

  2. NETBEANS’TE AXİS 2 WEB SERVİS GELİŞTİRME AXIS 2 Nedir? Axis2’nin bazı özellikleri şunlardır: *Yeni XML işleme(process) çekirdeği modeli, AXIOM (AXIsObject Model) *A blocking ve non-blocking istemci API (applicationprogramminginterface) *WS-Addressingdesteği *HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail Transfer Protocol), ve TCP (Transmission*Control Protocol) iletişimi için destek Axis 2, web servisler için oluşturulmuş çekirdek makinadır(core engine). Bize SOAP kullanılarak dizayn ve yazma sağlayan apache tarafından geliştirilmiş proje diyebiliriz. Java ve C programlama dillerini desteklemektedir. Ayrıca RESTve Spring Framework  desteği de mevcuttur.

  3. Daha detaylı bilgi için burayı ziyaret edebilirsinizhttp://axis.apache.org/axis2/java/core/ http://netbeans.org/downloads/ sitesinden Netbeans 6.9.1 ALL sürümünü indiriniz.(Axis 2 Netbeans 7 sürümüne şu an uyumlu değildir.)Bu sürüm içerisinde Tomcat 6.0.26 yı da barındırmaktadır ve böylece Netbeans kurulumuyla beraber Tomcat i de işlemsiz bilgisayarımıza kurmuş oluruz.Tomcat bir internet sunucusudur ve web servislerimiz bu sunucu üzerinde çalışacaktır.(JDK 6 VE JRE 6 yükleme öncesi kurulmuş olmalıdır.) Daha sonra http://axis.apache.org/axis2/java/core/download.cgi sitesinden Axis 2 1.6.0 ‘ın WAR sürümünü arşiv dosya şeklinde indiriniz.İleride bu paketi sunucu ya açacağız. Netbeans ‘i açarak Araçlar-Eklentiler-Uygun Eklentiler yolunu izleyerek Axis2 Support eklentisini kurunuz.Bu eklenti kodlarımızı yazarken bize yol gösterici olacaktır. Tomcat Sunucusu ‘na alternatif olarak GlassFish Sunucusu da mevcuttur fakat hız farkından dolayı Tomcat i kullanacağız.Tomcat varsayılan olarak C :/ProgramFiles içine kurulur.ElinizdekiAxis 2 dosyasını CATALINA_BASE/webappsdizinine açın.’’CATALINA_BAS E’’ dizininin neresi olduğunu öğrenmek için Netbeans ‘te servisler tabını kullanarak Sunucular sekmesinden Tomcat ‘i başlatın.Daha sonra Tomcat Sunucusuna sağ tıklayıp Properties seçeneğine girin.Burada Connection sekmesine tıkladığınızda bu adresin neresi olduğunu göreceksiniz.(Bknz şekil 1) .Bu işlem sonucunda dizinde axis2.war dosyası oluşacaktır. AXIS 2 ve NetBeans Kurulumu

  4. 6.Daha sonra Tomcat Sunucusunu tekrar başlatın .Bu işlem sonucunda Tomcat axis2.war dosyasını aynı dizindeki axis2 klasörüne çıkaracaktır. 7.Netbeans’te Araçlar-Seçenekler menüsünü izleyiniz ve açılan pencereden Axis2 tabına tıklayın.Burada ‘’targetlocationfor Axis2 AAR files’’ yazan yere CATALINA_BASE (not TOMCAT_HOME)/ webapps/axis2 Dizinini girin.Daha sonra ‘’Axis2URL ‘’kısmına uygun bir port adresi giriniz.(8084-8080).Son olarak ‘’ Use Tomcat Manager for Deployment’’ seçeneğini de işaretleyerek ‘’OK’’ e basınız.(bknz Şekil:2) 8.Axis2 URL deki port numarasının Tomcat Sunucu su için doğru olup olmadığını kontrol için Tomcat i başlatın ve CoyoteHTTP/1.1 in kullandığı port numarasını bakın.Yanlışsa kullanılan port numarasını giriniz.Aşağıdaki şekilde 4. satır bize Coyote HTTP/1.1 ile ilgili bilgi vermektedir.

  5. Bu işlemlerin sonucunda artık Netbeans,Tomcat Sunucusu ve Axis2 , web servis geliştirmek için uygun duruma gelmiştir. AXIS 2 Web Servis Geliştirme Netbeans-File-New Project –Java-Java Library Project menülerini kullanarak bir java projesi oluşturulur. Daha sonra projeye isim verilir (AxisHello) ve kaydedileceği dizin seçilir. Oluşturulan proje üzerine sağ tıklanarak New-Other-Web Services-Axis2 Web Service From Java-CreateEmpty Web Service menüsü takip edilir.En son web servis ismi , kaydedileceği dizin seçilir ve örnek bir method oluşturma seçeneği işaretlenir.Finish butonuna tıklanınca web servis oluşturma işlemi birmiş olur. (bknz şekil 3) Web Service ‘i çalıştırmak için önce Tomcat Sunucusunun çalışıp çalışmadığı kontrol edilir ve sonrasında proje altında Axis2 Web Services-DeployTo Server menüleri izlenir ve web servis çalışmaya hazır hale getirilir. Programı test etmek için Axis2 Web Services menüsü altında ilgili web servis bulunur ve altında ‘’hello’’ isimli fonksiyona sağ tıklanarak Test OperationIn Browser karşımıza aşağıdakine benzer bir çıktı gelir.(bknz şekil 4). Projede .java dosyamızın olduğu paket altına gidersek buradaki class içinde hello fonksiyonunu görürüz .Bu kısma biz de dört işlem yapan 4 tane fonksiyon daha ekleyip yukarıdaki işlemleri tekrarlayabiliriz.

  6. Şekil 3 Şekil 4

  7. Şekil 4’te görüldüğü üzere program çıktısı XML halindedir ve istediğimiz çıktı bu XML arasına gömülüdür.Ayrıca çıktı bir web sayfası olduğundan adres çubuğundan name değişkenine farklı isimler atayarak farklı çıktılar üretebiliriz. Axis 2 Web Servis Client Oluşturma Bu kısımda Bir WSDL dosyasından nasıl bir web servis istemcisi oluşturacağımızı göreceğiz.Bunun için sırasıyla aşağıdaki adımlar takip edilir. File-New Project-Java Web-Web Application menüleri yardımıyla istenilen isimde ve dizinde bir web uygulaması oluşturulur. Proje ismine sağ tıklanarak New-Other-Web Services-Web Service Client menüleri izlenerek istemci oluşturmaya başlanır.Bizden bu aşamada web servisimizin wsdlurl’sini girmemiz istenir.Bunu da şöyle bulabiliriz.ÖnceTomcatçalıştırılır.Kullandığımız port 8084 idi.İnternet tarayıcıya http://localhost:8084/axis2/services/listServices yazıldığında sunucudaki web servislerin listesine ulaşırız.Buradan da istediğimiz servise tıkladığımızda adres çubuğunda wsdlurl’sioluşur.Bu adresi kullanarak istemci oluşturmaya devam edilir.Daha sonra paket ismi boş bırakılır ve jax versiyon olarak JAX-WS seçilir.Finish butonuna tıklanır ve web service istemcisi oluşur.HesapMak adlı bir web servis oluşturduğumuz düşünülürse önümüze şekildeki gibi bir proje ekranı gelir.(bknz şekil 5)

  8. Bu aşamada istemci web servis sunucusuna bağlanmış haldedir.Proje penceresinde GeneratedSourcestabı altında web servise ve web servi s e ait fonksiyonlara erişim ile ilgili classlar yer almaktadır.Daha altta web references kısmı görülür .Burada da web servis ismi ve yapabileceğimiz operasyonlar listelenir.WebPages tabı altında da index.jspdosyası vardır ve bu da istemci ile kodlarımızı yazacağımız jsp dosyasıdır.(bknz şekil 6)Bu sayfada kodlama yapabilmemiz için temel html kodlarına hakim olmamız gerekmekedir. NOT: Class isimlerinde Türkçe karakterler veya «ı,i» kullanılması durumunda proje nin ‘’GeneratedSources’’ kısmında syntax hatası uyarısı alırsınız.Bu durumda da proje çalışmaz ve .jar veya .war haline getirilemez.

  9. BASİT BİR HESAP MAKİNESİ UYGULAMASI publicStringhello(String name) { return "Hello "+name; } publicint topla(int a, int b) { int c = a + b; return c; } publicintcikar(int a, int b) { int c = a - b; return c; } publicintcarp(int a, int b) { int c = a * b; return c; } publicint bol(int a, int b) { int c=0; if(b!=0) c = a / b; return c; } Yukarıdaki kodlar Hello isimli web servis uygulamamızın içindeki SayHello.java dosyasındaki dört işlem fonksiyonlarına aittir. Şimdi bunları istemci tarafından nasıl yöneteceğimizi görelim.

  10. Daha önce index.jsp adlı dosyamızın kodlarını şekil 5 te görmüştük.Bu dosya sayesinde web servis istemcisi web servis fonksiyonlarını kullanarak çeşitli işlemler yapabilir.Şimdi buradaki kodları sırasıyla açıklarsak; • action='http://192.168.1.41:8084/axis2/services/Sayhello/hello‘ ile form üzerinde işlem yapıldığında ulaşılması gereken web servis fonksiyonunun Tomcat üzerindeki dizinini verdik.buradalocalhost ifadesi yerine ip adresi kullandık.Çünkü istemciler makine bağımsız olmalıdır.Bu uygulamayı bu şekilde aynı ağdaki başka bilgisayarlarda da sorunsuz çalıştırabiliriz. • method="post" target="_blank"> post ile veriyi gönderiyoruz ve sonucu yeni bir sayfada görüntülüyoruz. • <td>Who are you:</td>,<td><input type="text" size="30" name="name"></td>ifadeleri ile bir textbox oluşturup buradan girilen input değerini hello fonksiyonunun name adlı parametresine aktarıyoruz. • <td align="right"><input type="submit" value="Hello"></td> ifadeleri ile bir hello isimli bir buton oluşturup bu buton ile işlemlerin yürümesini sağlıyoruz. • Kodların devamını incelediğimizde diğer fonksiyonlara da aynı şekilde ulaşıldığı görülür. Bu şekilde kodlama bitirilip sayfa sunucuya deploy edilirse şekil 6 daki bir arayüz oluşturmuş oluruz.

  11. Burada add fonksiyonunu için 5 ve 6 değerini girip çıktı ekranını görelim:

  12. Görüldüğü gibi 11 sonucu <ns:returntagları arasında dönmüştür. Diğer fonksiyonlar da aynı şekilde çalıştırılabilir ve sonuç buna benzer bir çıktı üzerinde test edilebilir NOT: Netbeans te istemci üzerine sağ tıklanıp ‘’CleanAndBuild ‘’ işlemi yapılırsa projenin olduğu dizinde dist klasöründe aynı isimli .waruzantılı bir dosya elde edilir.Bu dosya Tomcat üzerinde deploy edilmek koşuluyla aynı ağdaki başka bilgisayarlarda da çalıştırılabilir.

  13. BİR SONRAKİ AŞAMADA YAPILABİLECEK İYİLEŞTİRMELER • XML çıktılar parse edilip sayfa kullanıcıya HTML olarak sunulabilir. • Sonuçlar MySQL vb. bir veritabanına kaydedilebilir. • Arayüz HTML &CSS kullanılarak daha iyi ve düzenli bir görünümde tasarlanabilir. • İstemci olarak bir web uygulaması değil de masaüstü uygulaması tasarlanabilir. • IP vb değerler dinamik olarak alınabilir.(properties dosyası ve hardcoding) DiNLEDİĞİNİZ İÇİN TEŞEKKÜRLER Serkan Macit

More Related