Web Servisleri Dersi Client-Server Ödevi

2017, Nov 30    

Ödevin nasıl olması gerektiğini şu adresten öğrenebilirsiniz. Not: Bilgisayarınızda netbeans, apache2, php ve php-soap’ın kurulu olduğunu farzederek anlatmaya başlıyorum.

Öncelikle netbeans ile yeni bir Java Web Application’ı oluşturmamız gerekiyor.

Smithsonian Image

Ardından oluşturduğumuz projeye bir web servise yaratıyoruz.

Smithsonian Image

Yarattığımız web servis’in içeriği ilk etapta şu şekilde olacaktır.

Smithsonian Image

Oluşturduğumuz servis’in çalışıp çalışmadığını Test Web Service yapısı ile kontrol edebiliriz.

Smithsonian Image

Serviste varsayılan olarak gelen Hello fonksiyonu verilen değeri hello string’i ile birleştirip geri göndürmektedir.

Smithsonian Image

Şimdi web servis için gerekli olan Jsoup kütüphanesini projeye dahil edelim.

Smithsonian Image

Ardından twitter dan profil resmini çekmek için gerekli olan kodları yazalım.

Burada fonksiyon tek parametre alıyor username adında. Ve gönderilen veriyi http://www.twitter.com/ adresi ile birleştiriyor. Ardından Jsoup kütüphanesini kullanarak verilen adres ile bağlantı kuruyor. Dönen değeri parse ederek doc değişkenine atıyor. Bu değişkende sayfa kaynağımız mevcut. Ancak biz burada yanlızca Twitter’ın profil resmi için tanımladığı etikete ulaşmak istiyoruz. Yani aşağıdaki resimde gördüğünüz ProfileAvatar-image ifadesine.

Smithsonian Image

Bu yüzden Document türündeki veri’nin içinde image etiketini ve class bilgisini seçiyoruz. Ve gelen ilk elementin “src” bilgisini tanımladığımız userImage değişkenine atıyoruz. Eğer uygulama herhangi bir hata ile karşılaşırsa diye try-catch ibaresini de eklememiz gerekiyor. Web servis kısmı buraya kadardı şimdi client kısmını php ile yazmaya bakalım. Bu arada projenizi deploy etmeyi ve glassfish server’ınızın açık olup olmadığını kontrol etmeyi unutmayın.

Client kısmından istek atabilmemiz için projenin localimizde tanımlı wsdl adresini bilmemiz gerekli. Bu yüzden glassfish’in çalıştığı 4848 portuna bağlanıyoruz. Ve buradan oluşturuğumuz uygulamayı seçiyoruz.

Smithsonian Image

Açılan pencerede Module and Components kısmında oluşturduğumuz servis’in endpoint’ini görüntülüyoruz.(View Endpoint)

Smithsonian Image

Açılan pencerede farklı portlara ait server adresleri var. Bunlardan herhangi birini seçebiliriz. Ben 8080 portunu seçiyorum.

Smithsonian Image

Burada yazdığımız web servis’e istek atabilmemiz için wsdl_url yeni bir Soap client’ı oluşturuyoruz. Ve web servis tarafında tanımladığımız getTwitPic metoduna kullanıcı adını gönderiyoruz. Gelen değeri de img etiketi içine ekliyoruz. Kodları aşağıdaki gibi.

Smithsonian Image

_

Ardında apache server‘ı başlatıyoruz.

Smithsonian Image

Son olarak da localhost’tan projenin çalışıp çalışmadığını kontrol ediyoruz. Php dosyalarımı tuttuğum path şu şekilde. /var/www/html/WebServices

Bu sebeple tarayıcıyı açmak için kullanacağımız adres: http://localhost/WebServices/test.php olmalı. Hemen bu adrese gidelim.

Smithsonian Image

Ve gördüğünüz gibi oluşturduğumuz client-server uygulamamız doğru bir şekilde çalışıyor. Benzer işlemi instagram için de yapalım. Burada php kısmında yalnızca çağırdığımız metod adı ve istersek username ifadesi değişecek. Java web servis metodu da twitter’a benzer olarak şu şekilde yazılmalı.

Instagram etiketleri farklı şekilde tuttuğu için burada yanlızca parse etme işlemimizde ulaşmak istediğimiz etiketleri değişiyoruz.

Smithsonian Image

Tarayıcıyı yenilediğimizde kodlarımızın doğru bir şekilde çalıştığını görebiliriz.

Smithsonian Image

Anlatacaklarım burada bitti. Eğer yazıda bir hata ya da eksik olduğunu düşünüyorsan yorum olarak belirtmeni çok isterim.

Sevgiler

Teşekkürler
Yavuz Kuru