JAX-WS Web Servisleri ve WSGEN

Herkese kısa bir yazıyla merhaba,

Yine daha sonra kendime not olması amacıyla yazdığım bir yazıyla karşınızdayım. 3. 4. kez bu hatayla karşılaşınca artık geri dönüp bir yerlere çözümü not etmek gerektiğine karar verdim.

Java’da web servislerinizi JAX-WS yordamıyla açmak diğer yöntemlere göre kısa ve kolay bir yol. Lakin bu şekilde çalışırken, SoapBinding özelliğini DOCUMENT olarak girerseniz yada boş bırakırsanız yapmanız gereken başka işlemler de var.

Bu durumda sadece derlemeyle oluşturduğunuz sınıflar yeterli olmuyor. JAX-WS için gerekli olan diğer sınıfları ve dosyaları(wsdl ve xsd) sizin üretmeniz gerekiyor. Aksi takdirde şu meşhur:

Wrapper class paket_ismi.jaxws.methodName is not found. Have you run APT to generate them?

Hatasını alıyorsunuz.

Bu dosyaları üretmek ise oldukça kolay. Tek yapmanız gereken wsgen aracıyla gerekli dosyaları oluşturmak ve projenizde gerekli paketin içine taşımak. Bundan sonra tek yapmanız gereken tekrar bir paket oluşturmak!

Gerekli wsgen komutu örneği:

wsgen -keep -cp . com.organizasyon.adi.ws.WebServiceEndpoint

PS: Bu arada hep benim düştüğüm hataya düşmeyin, bu işlemi .class dosyalarında çalıştırmanız gerekli, .java dosyalarında çalıştırırsanız ClassNotFound exceptionı alırsınız : ).