Öncelikle bilgisayarınınızda JBossWS , JBossAS ve JDK5/6 kurulu olması gerekmektedir.Bu gerekenleri bilgisayarınıza
kurduktan sonra web servis yazmanın iki tane yolu vardır.
Bunlardan birincisi EJB3 yapısını kullanarak ikincisi ise POJO(Plain Old Java Object) kullanarak yapılmaktadır.
kurduktan sonra web servis yazmanın iki tane yolu vardır.
Bunlardan birincisi EJB3 yapısını kullanarak ikincisi ise POJO(Plain Old Java Object) kullanarak yapılmaktadır.
Stateless EJB3 ile :
Öncelikle Remote Interface'imizi oluşturalım
import javax.ejb.Remote;
@Remote
public interface MerhabaDunyaRI {
public String merhabaDe(String isim);
}
Daha sonra bu interface'i gerçekleyen sınıfı "MerhabaDunya" yı oluşturalım
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import org.jboss.wsf.spi.annotation.WebContext;
@WebService(name = "EndpointInterface", targetNamespace = "http://www.domaininiz.com/servisler", serviceName = "MerhabaDunyaServisi")
@SOAPBinding(style = SOAPBinding.Style.RPC)
@WebContext (contextRoot="/servislerim", urlPattern="/MerhabaServisi")
@Stateless
public class MerhabaDunya implements MerhabaDunyaRI {
@WebMethod
@WebResult(name="sonuc",targetNamespace="sonuc")
public String merhabaDe(String isim) {
return "Merhaba "+ isim;
}
}
JBossAS yi çalıştıralım ve http://127.0.0.1:8080/jbossws/services (admin/admin) adresine bir bakalım

Web servisimiz hazır :)))
POJO ile:
Interface falan yazmanıza gerek yok. Basit bir sınıf olan MerhabaDunyaPOJO 'nun başına @WebService annotation'ı ekleneniz yeterli.
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService(targetNamespace = "http://www.domaininiz.com/servisler", serviceName = "MerhabaDunyaPOJOServisi")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class MerhabaDunyaPOJO {
@WebMethod
public String hello(String input) {
return "hello from pojo " + input;
}
}
Tabi birde web.xml de düzenleme yapmamız lazım. Sınıfımızı servlet olarak kayıt ettirmeliyiz.
<servlet>
<servlet-name>MerhabaDunyaPOJOServisi</servlet-name>
<servlet-class>samples.webservice.HelloPOJO</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MerhabaDunyaPOJOServisi</servlet-name>
<url-pattern>/servislerim/MerhabaPOJOServisi</url-pattern>
</servlet-mapping>
JBossAS yi tekrar çalıştıralım ve http://127.0.0.1:8080/jbossws/services adresine bir göz atalım.

Peki web servis yazarken hangisini seçmeliyim diyorsanız biraz aradaki farklılıklara bakmalıyız.
EJB3 yazılan web servislerle POJO lara göre bir kaç tane fazladan annotations vardır.
EJB3 ile yazılan web servisleri sadece Enterprise Application (EAR) projelerinin içinde paketlenebilirken POJO 'lar ise hem EAR hemde WAR içinde paketlenebilirler. Stateless EJB kullandığımız için AOP 'un avantajlarından olan @PreDestroy ve @PostConstruct ' ları ve diğer EJB3 'in özelliklerini web servisinizde kullanabilirsiniz.
EJB3 yazılan web servislerle POJO lara göre bir kaç tane fazladan annotations vardır.
EJB3 ile yazılan web servisleri sadece Enterprise Application (EAR) projelerinin içinde paketlenebilirken POJO 'lar ise hem EAR hemde WAR içinde paketlenebilirler. Stateless EJB kullandığımız için AOP 'un avantajlarından olan @PreDestroy ve @PostConstruct ' ları ve diğer EJB3 'in özelliklerini web servisinizde kullanabilirsiniz.
Benim tavsiyem stateless EJB3 ile web servis yazmanız :)))
This entry was posted
on Perşembe, Haziran 18, 2009
at Perşembe, Haziran 18, 2009
and is filed under
ejb3,
java,
jax-ws,
jbossws,
webservice,
webservis
. You can follow any responses to this entry through the
comments feed
.


