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;
- Web servis ile iletişime geçmek çin bir “service” oluşturuyorum.
- “service” üzerinden bir bağlantı alıp HelloWorld nesneme atıyorum.
- Metodun herhangi aksi bir durumda exception fırlatabileceğini tahmin eden Eclipse exception eklemem konusunda beni uyarıyor, ekliyorum.
- Web servisin çağıracağım metodu -sayHello()- String döneceğinden buna uygun tanımı yapıp, web servisi çalıştırıyorum.
(HelloWorldService service = new HelloWorldServiceLocator();)
(HelloWorld port = service.getHelloWorldPort();)
(throws Exception)
[java]
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 );
}
}
[/java]
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.
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
“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 🙂
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ş 😀 teşekkür ederim yine de 🙂
Olusturdugum classlari baska bir sunucuda kullanabilirmiyim yani eclipste kodlari olusturduktan sonra jdeveloperda derleyim weblogic sunucusunda calisirmi?
Çalışır.
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..
bir de bunu dener misiniz?
Çok teşekkür ederim. Tam da bana lazım olan şeydi.
Ellerine sağlık çok iyi özetlenmiş. Kısa ve öz bir şekilde web service anlamanın en güzel yolu.
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 ?
teşekkür ederim görüşlerinizi bildirdiğiniz için 🙂 şu an askerlik vazifemi yaptığım için uygulamayı yükleme şansım yok ama imkan bulursam yüklerim.
Teşekürler halletim
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.
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.
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.
Aradığın cevap atmosphere framework (https://github.com/Atmosphere) http://async-io.org/
Elinize Sağlık Hocam
Merhaba. ben eclipse idesini kullanıyorum. Ama benim idem de web service gözükmüyor sebebi nedir
“Eclipse IDE for Enterprise Java and Web Developers” olan sürüm yüklenmeli. https://www.eclipse.org/downloads/packages/ sayfası altında bulabilirsiniz.