Web Services and Play Framework

62 views
Skip to first unread message

Huzeyfe Borazan

unread,
Mar 26, 2012, 6:09:35 AM3/26/12
to play-fra...@googlegroups.com
Merhabalar,

Play Framework kullandigim bir projede web service client set up etmem gerekiyor. Daha once web servicele calistigim projelerde maven. tomcat vs gibi yapilar mevcuttu. Ama play framework'un yapisi biraz degisik ve bazi noktalarda kafam karisti acikcasi. Birkac tane sorum olacak eger yanitlayabilirseniz cok sevinirim:

1- Oncelikle Axis2, Apache CXF ve Metro Web Services bunlardan hangisini tavsiye edersiniz. Simdi anladigim kadariyla bunlardan bazilari app server ya da web container ile entegre calisiyor. Ama hangi noktada oyle calisiyorlar iste kafamin karistigi nokta bu.. 

2- Ben web service yazmayacagim (zaten restful bi mimaride cok daha kolayi varken gerek de yok ;)) ama bi web service client kuracagim. Play'in WS class'i ile yazdim ufak tefek seyler ama bu kullanacagim sevis biraz karisik oldugu icin WSDL'dan turetilmis classlari kullanmak daha saglikli ve efektif diye dusunuyorum.

Bu arada IDE olarak da eclipse ve play framework'un de 1.2.4 versiyonunu kullaniyorum..

Bu konularda aci tatli tecrubeleriniz paylasirsaniz cok memnun olurum..

Saygilarimla..

--
Huzeyfe BORAZAN

Engin Tekin

unread,
Mar 26, 2012, 5:02:07 PM3/26/12
to play-fra...@googlegroups.com
Merhaba,

Playin container icinde calismasi falan kafanizi karistirmasin, client yazacaginiz icin bu kisim onemli degil, eger server yaziyo olsaydiniz ozaman bi containera koymaniz gerekecekti.

Play ile web service clienti yazdim daha onceden, bunun icin axis 1.2 kullanmistim, epey zamandir sorunsuz calisyor. Bugune kadar 5-6 tane farkli servis icin client yazdim(axis 1.2, axis 2 ve apacge cxf kullandim bunlarda, metroyu bilmiyorum), tecrubelerime gore client icin kullanacaginiz kutuphaneyi secmek sizin elinizde olmuyor. Mesela kullanacaginiz servis .Net ile yazildiysa Java'da en duzgun apache cxf calisiyor. Apache 1.2 ile istesenizde servisi kullanamiyorsunuz, wsdl generate ediyor ama servisi kullanmaya calisinca ilginc hatalar aliyorsunuz "did not understand mustUnderstand" falan gibi hatalar veriyordu, baya ugrastirmisti beni de, en sonunda apache cxf ile calismisti.

Play WS kullanmadim ama daha cok restful servisler icin uygundur diye tahmin ediyorum.

Huzeyfe Borazan

unread,
Mar 27, 2012, 3:48:51 AM3/27/12
to play-fra...@googlegroups.com
Merhaba,

Oncelikle tecrubelerinizi paylastiginiz icin cok tesekkur ederim. Evet baslarda app server konusu kafami karistirmisti cunku nereyi acsam yok su server icin sunu yapin bunun icin bunu yapin diyorlardi. Client kismi benim isimi gorecek. Kendi web servislerimi zaten REST ve JSON kullanarak yaziyorum. Bana Axis cok sicak gelmedi. CXF JAX-WS implementasyonuna dayandigi icin o daha mantikli geliyor.

Play Framework'teki WS ile ufak tefek currency rate vs. gibi bir kac servis yazdim. Normalde kullanisli ama buyuk servisler icin uygun degil. Onun icin ayri bir yontem var midir bilmiyorum. ZIra buyuk servisler icin herbir objeyi tek tek request body icine koymak cok mantikli gelmedi bana.. Ama tabi RESTFul servisler icin ozellik JSON response aldiklariniz icin kullanisli.

Not: Buradan sonrasi play framework'ten ayrildigi icin cevap vermek isterseniz ozel olarak da atabilirsiniz. 

Peki CXF kullanirken dikkat etmem gereken sizin yasadiginiz sorunlar var midir anti-pattern tarzi durumlar? Ya da onerebileceginiz bir kaynak da olur. Tekrardan cok tesekkur ederim.

Saygilarimla..
--
Huzeyfe BORAZAN

Can Bican

unread,
Mar 26, 2012, 9:17:58 AM3/26/12
to play-fra...@googlegroups.com
Merhaba,

Sürmekte olan bir projemizde http://jax-ws.java.net/ kullanmaktayız, wsdl tanımları hazırda varsa kütüphaneyi oluşturmak çok kolay. Sadece kurulumda sorun olmakta, JDK 1.6 ile çalışırken api kütüphanelerini endorsed olarak tanıtmak gerekiyor. Yalnız sonuçta ortaya çıkan (en azından bizim projede) .class dosyaları olduğundan, Play'in aklının karışmaması için farklı bir modül haline getirip, jax-ws'in oluşturduğu class dosyalarını da jar olarak sunmak, sorunları en aza indirgemek için bulduğumuz en kolay yol.

Saygılar,

--
Can Bican
Reply all
Reply to author
Forward
0 new messages