Aug
16
2010

Eclipse ile WSDL OluÅŸturma

Web servis ile uğraşırken, en çok sıkıntı yaratan şey WSDL oluşturmak sanırım. En yalın hali ile XML den ibaret bir dosya olmasına rağmen , çok fazla ayrıntı olması bu işi zorlaştırıyor.

Ama,WSDL dosyasını HTML gibi , gerekli etiketleri kullanarak, bir yazı editörü ile oluşturabilmek de mümkün. Biz kolay yöntemi kullanarak , Eclipse yardımı ile WSDL dosyasını oluşturacağız.

Eclipse ile WSDL dosyasını oluşturabilmek için, yeni bir proje açarak veya var olan proje içerisinde
File -> New -> Other adımlarını takip ettiÄŸimizde, karşımıza çıkan pencerede bulunan Web Services baÅŸlığı altındaki, WSDL File seçip “Next”e tıklayarak bir diÄŸer adıma geçin.

Bu adımda WSDL dosyamıza bir ad vererek bir diğer adıma geçin.

Bu adımda bulunan “Target namespace” yazan alana, benzersiz bir url yazın (örnek için var olan kayıdı deÄŸiÅŸtirmeseniz de olur)

“Prefix” alanına da herhangi birÅŸey yazabilirsiniz , örneÄŸin “tns” yerine “orn” yazabilirsiniz.
Buradaki “Create WSDL skeleton” seçeneÄŸinde bulunan iÅŸareti kaldırın, çünkü bize örnek bir WSDL oluÅŸturmasını istemiyoruz, kendimiz sıfırdan oluÅŸturacağız.

Bu iÅŸlemden sonra “Finish”e tıkladığımızda, bir kaç satır koddan oluÅŸan bir sayfa gelir karşımıza. Bu sayfa “Source” ve “Design” olmak üzere iki bölüm vardır. Biz “Design” bölümünü kullanacağız, burası görsel olarak WSDL’i oluÅŸturabileceÄŸimiz bölümdür.

WSDL oluÅŸturmaya geçmeden önce, web servisimizin ne olacağını ve ne görev yapacağını belirlemeliyiz. Böylece WSDL’imizi de bu yapılacak iÅŸlere göre oluÅŸturacağız.

Web servisimiz bir stok servisi olsun, urun stok durumunu kontrol edebilen ve stoğu listeleyebilen , ürünün stok durumunu gösterebilen bir servisimiz olsun. Bu web servisde kullanılacak sınıfımız da aşağıdaki gibi olsun :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class StokYanit {
   public $mesaj;
   public $kod;
   public function __construct($mesaj,$kod){
      $this->mesaj=$mesaj;
      $this->kod=$kod;
   }
}
class Urun {
   public $id;
   public $ad;
   public $renk;
   
   public function __construct($id,$ad,$renk){
      $this->id=$id;
      $this->ad=$ad;
      $this->renk=$renk;
   }
}

class Stok {
   public function liste(){}
   public function kontrolEt(Urun $urun){
      return new StokYanit($urun->ad.' ürünüden x adet kalmıştır',100);
   }
}

Yukarıdaki kod sadece sistemin iÅŸleyiÅŸini anlatabilmek için oluÅŸturuldu. Åžimdi geçelim bu stok servisimizin WSDL’ini oluÅŸturmaya.
Az önce bahsettiÄŸim gibi , “Design” bölümünü kullanacağız. Design bölümüne tıkladığımızda karşımıza boÅŸ bir sayfa çıkacaktır. Bu sayfada bir alana saÄŸ tıklayalım :

- Add Service
- Add Binding
- Add PortType

ve daha birkaç seçeneğin de olduğu bir menü çıkar. Bu menüden bu üç seçeneği yazdım, çünkü en çok kullanacağımız seçenekler bunlar.

Åžimdi , yukarıdaki Class’ın WSDL’imizde karşılığını oluÅŸturacağız. Böylece web servisimizi kullanarak sistemimizde stok iÅŸlemeleri yapılabilecek.

Add PortType bir port ekler, burada servisin yapısını oluşturmamızı sağlar (Bizim örneğimizde IStok, bu adlandırmayı rastgele yaptım) .

Add Service ile bir servis oluşturulur, servis çağrısının yapılacağı konumu belirtmemizi sağlar (endpointURI burada tanımlanır)

Add Binging ile de Service ve PortType arasında baÄŸ kurulması saÄŸlayan “Binding” nesnesi oluÅŸturulur.

Burda en önemli ve en karmaşık olan bölüm “Add PortType”. Çünkü bu seçenek ile servisimizin yapısını oluÅŸtururuz.

Buraya kadar anlattıklarımı video olarak aşağıda bulabilirsiniz. Tek tek resim ekleyerek anlatmak uzun ve zor olacağından böyle bir yöntem seçtim. Yalnız ses problemini aşamadığım için videoda ses yok.

Videoyu izlemeye geçmeden önce yukarıda bulunan kodlardaki “Class”lara iyi bakın, çünkü WSDL de bu yapıyı kuracağız.

Eclipse ile WSDL oluÅŸturma from Ersin DOÄžAN on Vimeo.

Konu ile ilgili daha fazla bilgi vermek gerek, yalnız ayrıntı fazla olduğu için , konuyu dağıtmadan nasıl tamamlayabileceğimi bilemediğim için, yazıyı burada kesiyorum. Aklınıza takılan şeyleri burda yorum olarak yazarsanız, konun devamını yorumlardan sürdürebiliriz.

Güzel günler dileği ile.

1 Yorum »

  • BloÄŸunuzu sık sık takip ediyorum. Gerçekten çok güzel makaleler yayınlıyorsunuz. DiÄŸerleri gibi bu makelede çok bilgi verici. Çalışmalarınızın devamını dilerim.

RSS feed for comments on this post. TrackBack URL


Yorum yaz

Powered by WordPress | conserio | xoppla | TheBuckmaker