Aug
08
2010

Web servislerinde hata ayıklama

“looks like we got no XML document” hatasını aldığımızda , öylesine kalakalırız ilk baÅŸlarda. Çünkü web servisin çalışması için gerekli kodları yazmış ve gerekli ayarlamaları yapmıştık. Neden çalışmıyor ki bu meret, yok mu bunun neden çalışmadığını anlamanın yolu. Var tabiki.

Gönderilen her SOAP çağrısını (SOAP Request) ve cevabını (SOAP Response) izleyebiliriz. Bunun için yapmamız gereken yaptığımız çağrıyı try catch bloğu içerisine yazarak, hata olduğu zaman dönen cevabı yazdırmak.

Daha önceki yazıda verdiğim örnekten yola çıkarak anlatmaya çalışayım.

Sunucu tarafını burda vermeyeceğim, çünkü daha önceki yazıda mevcut. Şimdi istemci tarafındaki kodu yazalım :

1
2
3
4
5
6
7
8
9
10
11
$istemci=new SoapClient(null,
                  array('uri'=>'http://ersindogan-testuri',
                 'location'=>'http://localhost/test/sunucu.php',
                  'trace'=>1));
try {
var_dump($istemci->gonder('mesaj','konu','kime'));
}catch(Exception $e){
 echo '<xmp><pre>',
        print_r($istemci->__getLastResponse(),true),
        '</pre></xmp>';
}

Eski örneğe eklediğimiz iki farklı şey var :
Biri try-catch blogu içeirisine yazdık kodlarımızı.
İkinci olarak, hata olduÄŸunda dönen cevabı yazdırarak sorunun nerde olduÄŸunu anlamaya çalışıyoruz. Ayrıca unutmadan söyleyeyim, SOAP isteÄŸinden dönen cevabı görebilmek için , SOAPClient nesnemizin kurucusuna parametre olarak “trace” anahtarını vererek, bunun açık olmasını saÄŸlamalıyız. Aksi taktirde dönen cevabı ekrana bastırmaya kalktığımızda hiçbirÅŸey göremeyiz.
Aynı durum “xmp” etiketi için de geçerli, eÄŸer cevabımızı bu etiketler arasında yazdırmazsak , gene aynı biçimde dönen cevabı ekrana basmaya kalktığımızda hiçbirÅŸey göremeyiz. “xmp” etiketi, w3c tarafından kullanımı önerilmeyen, kodları etkisizleÅŸtirerek salt metin biçiminde gösterilmesini saÄŸlayan bir html etiketi. Her nekadar kullanılmaması önerilse de, bu tip hata ayıklama iÅŸlemlerinde çok yardımcı oluyor.

Web servisler üzerine birşeyler yazarken, hata ayıklamayı yazmayı unutmuşum. Bana gelen bir epostadan sonra , bu konu üzerinde birşeyler yazmak istedim. Umarım açıklayıcı yazabilmişimdir.

Güzel günler dileÄŸi ile…

Yorum yok »

RSS feed for comments on this post. TrackBack URL


Yorum yaz

Powered by WordPress | conserio | xoppla | TheBuckmaker