Amaç : Aynı networkte bulunan 2 bilgisayardan birini Server, diğerini Client olarak kullanarak; web servisi yayınlamak. Hiçbir güvenlik engeline takılmadan, Server makinamızda bulunan dataları Client makinamıza çekebilmek ve istenilen Fonksiyonları kullanmak…
Gerekenler…
( http://cloudgarden1.com/update-site/ )
İşe IP konfigürasyonlarını yapmaktan başlıyoruz.
Server IP : 192.168.0.1 /24
Client IP : 192.168.0.2 /24
Ayrıca aynı ağda olduklarından da emin olmak gerekir.
Eclipse-Tomcat Ayarları
Eclispe açtıktan sonra kendi dizininde bir workspace (çalışma alanı) oluşturuyoruz.
(C:\eclipse-jee-indigo-win32\EclipseCalismalar gibi…)
Oluşturulan bu dizinde eclipse kendi ayarlarını, plug-in lerini yüklüyor. Projeler varsayılanda bu dizine oluşturuluyor.
Tomcat’i indirdikten sonra onu da eclipse gibi yine C: dizinine içindeki bir klasöre açmakta fayda var. Bağlantı işlemlerinin yapmak için:
**Eclispe>Window>Show Views>Servers
Sol tarafta bir alan açılacaktır. Sağ tılayıp Add>New Server tıklayıp, Tomcat sürümünü seçiyoruz ve C: dizinine açmış olduğumuz Tomcat klasörünün yolunu belirtiyoruz. Ve Finish diyoruz.
Axis2 Ayarları
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.
Axis 2 bazı özellikleri şunlardır:
File>New>Dynamic Web Application kısmından Project Name olarak “ws-server” ismini verdik. Runtime Server olarak Tomcat 6.0 ‘ın seçilmiş olması gerekiyor. Ardından Next ve Finish ile projeyi oluşturuyoruz.
Sıra geldi web Service oluşturmaya :
new>Others>Web Services>Web Service tıklıyoruz. Açılan pencerede Web Service Type kısmında bottom up Java bean web service, Service Implementation kısmında da ce.kocaeli.edu.tr seçili olması gerekiyor. Alt kısımda bulanan Hyperlinkler’den Server Runtime olarak Tomcat 6.0 seçili olmalı. Web Service Runtime olarak Apache Axis2 seçili olmalı. Değiştirmek isterseniz hyperlinke sağ tılayarak açılan pencereden değiştirebilirsiniz. Service Project olarak da tabiki oluşturduğumuz ws-server projemiz seçili olması gerekiyor.Ardından Finish’ e tıklayarak web service oluşturma işlemlerini tamamlıyoruz.
http://localhost:9090/ws-server/services/HesapIslemleri?wsdl
Server Tarafındaki ayarlamalarımız bittikten sonra şimdi client tarafındayız. İstersek aynı ağda birbirini gören farklı bir bilgisayarda da çalışabiliriz. Yada aynı bilgisayar da localhost dan bağlanabiliriz.
File>new>Dynamic Web Application diyip, proje ismine “ws-client” dedikten sonra finish’e tıklayoruz. Oluşan projemiz bir web application gibi dursa da, biz ilerki ayarlamalarımızla bunu bir desktop application olarak kullanacağız.
Service Definition Kısmına, Server tarafında belirttiğimiz wsdl linkini yazmamız gerekiyor. Daha önceden de dediğim gibi eğer localde çalışıyorsak
http://localhost:9090/ws-server/services/HesapIslemleri?wsdl linkteki localhost aynen kalır. Ancak Client bilgisayarımız uzakta olacaksa, linkteki localhost yerine daima hizmet verecek olan server’ın IP adresini yazarız. Başlangıçta belirttiğimiz gibi, Server olarak kullanacağımız bilgisayarın IP sini 192.168.1.1/24 olarak belirlemiştik. Yeni linkimiz
http://192.168.1.1:9090/ws-server/services/HesapIslemleri?wsdl olmuş oldu. Server tarafında yaptığımız gibi yine Web Service Runtime olarak Axis2 yi, Client Project olarak ws-client’ı seçiyoruz. Ve Finish tıklıyoruz.
Yüklemeyi başarıyla yaptıktan sonra:
Her Jbutton, JtextBox ve JRadioButton için temel eventleri yazdıktan sonra asıl bizi ilgilendiren kısmı Web Server’a bağlanma kısmı :
double s1= Double.valueOf(txtSay1.getText());
double s2= Double.valueOf(txtSay2.getText());
HesapIslemleriStub stub = new HesapIslemleriStub();
if (islem.equals(“1″))// Toplama
{
HesapIslemleriStub.Topla topla = new HesapIslemleriStub.Topla();
topla.setSay1(s1);
topla.setSay2(s2);
HesapIslemleriStub.ToplaResponse response = stub.topla(topla);
lblSonuc.setText(String.valueOf(response.get_return
()));
}
Kod kısmını açıklayacak olursak :
Eğer Öncesinde İşlem Butonuna basmadan önce hangi radio butona tıklanıldı ise, islem string ifademiz bir değer alır. (“1” Toplama, “2” cikarma… gibi) Örnek kodda Eğer toplama radio butonu tıklanıldı ise, islem string 1 olacağından, örnekteki parça run olacaktır. HesapIslemleriStub nesnesi ile ws’ye bağlanıp, gerekli metodumuzun nesnesini olurşturuyoruz. Ve Double’a çevirdiğimiz Textbox değerlerini metoda gönderiyoruz.
Projeyi Run etmek için, Anasayfa.java’ya Sağ tıklayıp>Run as>Java Application diyoruz. İşte bu noktada Projeyi ilk başta bir dynamic web app olarak oluşturmamıza rağmen, bir desktop app gibi kullanıyoruz.
( 36497 )