Web Servis İstemcisi (Web Service Client)

Web servis hizmetinin nasıl sağlanacağını önceki bir yazımda GlassFish uygulama sunucusu için anlatmıştım. Lâkin web servis hizmetlerini kullanan bir de istemciler vardır. Bu yazıda da bir istemcinin nasıl oluşturulacağını ve çalıştırılacağını anlatmaya çalışacağım.

Eclipse üzerinde bir web servis istemcisi oluşturmak için öncelikle standart bir java projesi açıyorum. Önceki projenin adı “WebServiceGlassFish” olduğundan buna da “WebServiceGlassFishClient” dedim, herhangi bir isim vermekte elbette özgürsünüz.

Proje adını girdikten sonra, tamam deyip projeyi oluşturuyoruz. Sırada istemciyi oluşturmak var; projeye sağ tıklayıp, New > Web Service Client diyoruz.

Bir sonraki ekranda bize istemcinin adresini soruyor, yani web servisi nerede diyor. GlassFish üzerinde çalışan web servisinin adresini aşağıda görüldüğü gibi giriyorum, bir kaç saniye sonra algılıyor ve devam et butonu ve diğerleri aktif oluyor. Tamam diyoruz.

Bu aşamalardan sonra artık Eclipse bizim için aşağıdaki gibi bir yapı hazırlıyor. Yapılanın özü şu; web service nerede, hangi metodları var, ne tür parametre alır vb sorulara cevap olacak sınıfları hazırlamak :)

Sırada artık web servisi sorgulamak ve cevabını almak var, bunun için “WebServiceTest” adında “org.sukru.webservices.test” paketi altında “main” metodu olan bir sınıf oluşturuyorum.

Vee oluşan sınıf içinden sırasıyla şu işlemleri yapıyorum;

  1. Web servis ile iletişime geçmek çin bir “service” oluşturuyorum.
  2. (HelloWorldService service = new HelloWorldServiceLocator();)

  3. “service” üzerinden bir bağlantı alıp HelloWorld nesneme atıyorum.
  4. (HelloWorld port = service.getHelloWorldPort();)

  5. Metodun herhangi aksi bir durumda exception fırlatabileceğini tahmin eden Eclipse exception eklemem konusunda beni uyarıyor, ekliyorum.
  6. (throws Exception)

  7. Web servisin çağıracağım metodu -sayHello()- String döneceğinden buna uygun tanımı yapıp, web servisi çalıştırıyorum.
package org.sukru.webservices.test;

import org.sukru.webservices.HelloWorld;
import org.sukru.webservices.HelloWorldService;
import org.sukru.webservices.HelloWorldServiceLocator;

public class WebServiceTest {

	public static void main(String[] args) throws Exception {
		HelloWorldService service = new HelloWorldServiceLocator();
		HelloWorld port = service.getHelloWorldPort();
		String cevap = port.sayHello("Melih Sakarya");
		System.out.println("Web Servisinin Cevabı: "+ cevap );
	}

}

Sağ tıklayıp Run As > Java Application deyince çıktının şu şekilde olduğunu görürsek Web Servisinin Cevabı: Merhaba Melih Sakarya!, sevinebiliriz :)

Kolay gelsin.

Şükrü Çakmak hakkında

1987 - insanı sever...
Bu yazı Java, Web Service kategorisine gönderilmiş ve , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Web Servis İstemcisi (Web Service Client) için 16 cevap

  1. veysel der ki:

    selam.. ben web servis istemcisini netbeans te yapmaya çalıştım.. önceden hazırladğm web servisini yeni oluşturduğum java uygulamasında çağırmak için istemci oluştururken finish deyince aşağıdaki linkteki hatayı veriyor ne yapmam lazım?

    http://goo.gl/ZjqLJ

    • Şükrü Çakmak der ki:

      “Finish” dediğin ekranın görüntüsünü yollar mısın?
      ayrıca url kısaltmak için http://goo.gl/ adresini kullanabilirsin :)

      • veysel der ki:

        sorunu çözdüm ya :) şu web servisi test ederken WSDL file geliyor ya oraya tıklamadan gelen adresi kopyalamıştım ben diğer diğer derleyiciler bunu otomatik tamamlıyormuş netbeans tamamlamıyormuş onu.. bu yüzden hata vermiş :D teşekkür ederim yine de :)

  2. Mehmet der ki:

    Olusturdugum classlari baska bir sunucuda kullanabilirmiyim yani eclipste kodlari olusturduktan sonra jdeveloperda derleyim weblogic sunucusunda calisirmi?

  3. nurdan der ki:

    https://kpsbasvuru.nvi.gov.tr/Services/WsdlNoPolicy.ashx?Service=KisiSorgulaTCKimlikNoServis&TestMode=true addresinde vatandışlık web servisi var. Browsera yapıştırdığımda wsdl dosyasının içeriğini görebiliyorum.Ama eclipse new web service client dediğimde adresde wsdl bulamıyor neden olabilir acaba?
    Teşekkürler..

  4. Aykut ÇALIŞKAN der ki:

    Çok teşekkür ederim. Tam da bana lazım olan şeydi.

  5. mehmet der ki:

    Ellerine sağlık çok iyi özetlenmiş. Kısa ve öz bir şekilde web service anlamanın en güzel yolu.

  6. tayfun der ki:

    Merhaba bu güzel makalenizin için teşekkürler web service yeni başladım.İlk yapmış olduğunuz GlassFish uygulamanız olmadan tam anlaşılmıyor onuda sayfaya entegre eder misinz ?

  7. safa der ki:

    Merhaba,
    Netbeans de basit bir web servis yazdım. Client ise eclipse de olacak. Şimdi Tomcat üzerinde aynı portlar açılamıyor. Ben netbeans de ki wsdl adresine eclipse den nasıl client oluşturabilirim. Aynı portda çalışırlarken sorun oluyor. İki ayrı tomcat üzerinde de bu iş olmuyor. Yardımcı olabilirseniz sevinirim teşekkürler.

    • Şükrü Çakmak der ki:

      client yazarken tomcat e ihtiyacınız olmaması lazım. yine de uygulamanızda tomcat gerekiyorsa, eclipse’de server tabında tomcat e çift tıklayıp oradan çalışan portu değiştirebilirsiniz. kolay gelsin.

  8. Guvercin der ki:

    Merhaba hocam öncelikle ellerinize sağlık. ben ToDoList programının daha basit halini yapacam. Bunu Netbeans ya da Eclipse de yapmam gerekiyor. Bunu Birçok kişi kullanabilir olması lazım. Şöyle anlatayım: Karşılıklı olacak. Ortak bir havuzda olur. Comment mantığı vardır, ya da thread de denir, yani eklenen maddeler vardır; ekleyeni, saati ve sırası bellidir, diğer kişi buna alt kırılım olarak cevap verir, bir diğeri de bu kırılımın da altında bir kırılım olarak cevap verir. Bir noktada karşılıklı olarak madde kapanır. Yani yukarıdaki yorumlara ayrı ayrı cevap verince her bir yorumun altına alt kırılım oluşması gibi… Böyle bir proje yapmam lazım bunu nasıl yapabilirim soket program mı web servis mi kullanmalıyım? yardımcı olursanız çok memnun olurum.

Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>