13 Kasım 2008 Perşembe

OC4J Üzerinde Netbeans ile hazırlanmış JAX-WS Webservisleri Çalıştırmak

Şimdi... Bu iş biraz karışık... JAX-WS standardı kullanmak için java versiyonu 1.5 ve üstü olmak zorunda. Bunun sebebi JAX-WS standardında annotation'ların kullanılıyor olması. Bu da biliyorsunuz 1.5'ten sonra gelen bir özellik.... Şu an resmi olarak Java 5 standardını destekleyen hangi application server'lar var bir sayalım:


  1. Glassfish
  2. Tomcat 6
  3. Oracle Weblogic
Görüldüğü gibi listede OC4J yok! Zaten Oracle BEA'yı bünyesine aldıktan sonra OC4J devam etmeyecekmiş gibi görünüyor. Neyse... Asıl konu şu: Netbeans ile webservisi oluşturulunca (Tabi özellikle axis2 ile kullanılmıyorsa) default olarak JAX-WS kullanılıyor. Bunlar zaten Glassfish üzerine rahatça deploy edilip çalıştırılabiliyor. OC4J ile çalıştırmak için build.xml scriptinin içine şu komutları eklemek gerekiyor:


<target name="-pre-dist">
<taskdef name="wsgen" classname="com.sun.tools.ws.ant.WsGen">
<classpath path="${javac.classpath}"/>
</taskdef>
<echo>running wsgen - quixotic</echo>
<wsgen
debug="true"
keep="true"
destdir="build/web/WEB-INF/classes"
resourcedestdir="build/web/WEB-INF/classes"
sei="tr.com.SINIF_ADI">
<classpath>
<pathelement path="${javac.classpath}"/>
<pathelement location="${java.home}/../lib/tools.jar"/>
<pathelement location="build/web/WEB-INF/classes"/>
</classpath>
</wsgen>
</target>


Bundan sonra derlediğimiz kod hem Glassfih hem OC4J üzerinde deploy edilebilir hale gelecektir. Tabi netbeans'de project properties'den library olarak JAX-WS kütüphanesini eklemiş olmak şartıyla!

Hâlâ birşeyleri çözebiliyor olmak ne güzel! :-))