java ile web servis yazmak
tomcat, webservice, webservis, axis, java June 12th, 2007
![]()
java ile web servis yazmak
Evet uzun bir zaman oldu sitemiz yaklaşık bir sene kapalı kaldı. Bu arada sizi çok özledik java severler tabi boş durmadık.Bu dönem içinde CEYOmuz vinnie’yi evlendirdik. Jasfid vatani görevini yerine getirdi ve döndü. Halen code camplerimizde jandarma marşı söylüyor kendisi. Ben mi naptım. Kodladık durduk işte :) Geçen gün gene vinnieyle otururken TCKimlik için extreme projeler üretirken (Vinnie hemen kodlamıştır benden habersiz kesin.) aklıma geldi. Vinnie zamanında TCkimlik adı altında bir webservise nasıl bağlanabilceğini göstermişti. Ben de bari nasıl javayla web servis yazılır size onu anlatayım.
Açıkcası web servis diyince tüylerim diken diken oluyordu. Abi nasıl kodlanır? yok SOAP du yok XML di kafayı yiyordum. java.sun.com sayfasından döküman okumaya kalkışınca kafam daha da dağılıyordu. Aslında o kadar kolaymış ki. Aslında problem çok komplike dökümanlar yazan nerd insanlarda. Aslında web servisler nerdler için değil.Sadece nerdler çok zeki ve işi zor gösteriyor ki hepiniz kaçsın. (WE’RE NERDS WE’RE NERDS COMON’ NERDS COMON’ CHELSEA :) )
Tamam şimdi size hemen anlatmaya başlıyorum. Gerekli malzemeler. Yaz Doktor!!
1-Axis : (http://ws.apache.org/axis/ adresinden temin edilebilinir.)
2-Tomcat: (Bir yamuk olmasın?)
3-Para sayma makinası
Evet bu kadar başka ne olcak :) Hemen bir toplama yapabilen web servis yazalım. Şimdi aşağıdaki kod nedir? Bir gariplik var mı ? Bildiginiz bir class farklı hiç bir şey yok. Ne yapıyor? sum methodu gönderilen iki integer sayıyı toplayıp geri dönüyor. Abi bu ne ya diyenler vardır kesin. Bunu bende yaparım ne varki? Evet aynen öyle bu yüzden aslında hepiniz webservis yazabilirsiniz ama farkında değilsiniz sadece. Ideniz bu kodu calculate.java olarak kaydeder.
public class calculate {
/** Creates a new instance of calculate */
public calculate() {
}
public int sum(int a ,int b)
{
return a+b;
}
}
Tamam calculate.java ismini “calculate.jws” olarak değiştirin.
Indirdiğiniz axis içinden webapps/axis directorysini tomcat altında uygun yere (/webapps) altına atınız. Bu folderın içine de calculate.jws dosyasını atınız. Okuduğum dökümanlarda bir xml parserın axis dizini altındaki liblerde bulunması gerektiğinden bahsediliyordu. Xercesi kullanabilirsiniz. Buraya kadar kolay sanırım bundan sonrası daha da kolay.
Browserınızdan http://localhost:8080/axis/calculate.jws adresini çağırdığınızda There is a Web Service here Click to see the WSDL diye bir şey gördüyseniz başardınız.
JWS uzantılı sayfa aslında source kod değil miydi? nasil cağırdık da çalıştı? (Source kod olarak attık class atmadık DIKKAT!!)
jws uzantılı dosya çağrıldığında axis otomatik olan gerekli sizin yapmadığınız işleri yapıyor. SOAPları oluşturuyor.Classları falan herşeyi hallediyor. wsdl dökümanını görmek içinde http://localhost/axis/calculate.jws?wsdl adresini kullanabilirsiniz. işte basit işinize yarayabilecek bir web servis geliştirmesini yaklaşık 10 dakkada öğrendik sanırım. Benim yazmam daha uzun sürdü valla :)
Manyaklar Bahane JAVA Şahane….
Social Bookmarking
November 30th, 2007 at 13:31
Merhaba,
belirttiğiniz yöntem primitive basit tipler için harika çalışıyor. Ancak geri dönüş değerini bir sınıf(Öreneği sadece Ad ve soyad adında String tipinde özelliği olan bir sınıf) yaptığımızda bu yöntem yeterli gelmiyor, geriye hiç bir değer döndürmüyor. Bu konuda çözüm için neler yapılabilir.
Yazı için elinize sağlık bu arada.
December 3rd, 2007 at 9:45
Evet doğru bu yöntemde daha karmaşık objeler dönemiyorsunuz kendimde bunu yaşamıştım. Hatırladığım kadarıyla Map objesi dönebiliyordu en basiti Map objesinin içine kendi objenizi gomup yollamayı deneyebilirsiniz. Aksi takdirde biraz daha işlem yapmanız gerekli objenizin serializable olması gibi.
March 25th, 2008 at 11:47
manyaksınız siz
May 6th, 2008 at 0:24
Merhaba,
Yani daha karmaşık objeler döndüremiyorsunuz derken bir XML yapısını da döndüremeyeceğimizi de kastediyorsunuz? Eğer öyleyse XML döndüren bir webservice yazabilmek için nasıl bir yol izlenmeli?
————- >
Ilk aklıma gelen XML i string olarak donebilirsin. Ve bu stringi xml document a cevirebilirsin.