java ile web servis yazmak

tomcat, webservice, webservis, axis, java June 12th, 2007

 Doomy

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
Add to: Mr. Wong Add to: Digg Add to: Del.icio.us Add to: Reddit Add to: StumbleUpon Add to: Slashdot Add to: Netscape Add to: Furl Add to: Yahoo Add to: Google Add to: Technorati Add to: Newsvine Add to: Ma.Gnolia



Başka Manyak Konular


Lütfen Yorumlarınızı bizimle paylaşın.

5 Responses to “java ile web servis yazmak”

  1. Mustafa Says:

    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.

  2. admin Says:

    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.

  3. aaa Says:

    manyaksınız siz

  4. Güneş Says:

    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.

  5. serkan Says:

    Öncelikle bilgiler için teşekkür ederim,
    ancak şöyle bir problemle karşılaştım eğer yardımcı olursanız sevinirim….

    bu web service sap-abap ile çağırılacak ancak bunun için soapAction kullanılıyor, web servisimde ise soapAction boş görünüyor burda soapAction’ın içini doldurmanın bir yolu var mı acaba??
    Şimdiden Teşekkürler

Leave a Reply

Site Navigation

Categories

Archives

Meta

Recent Enteries

Recent Comments

FireStats iconPowered by FireStats