چگونه یک وب سرویس با JAX-WS بنویسیم

تازه ها

چگونه یک وب سرویس با JAX-WS بنویسیم

نظرات ()

نوشتن وب سرویس با استفاده از کتابخانه JAX-WS

 

کلاس وب سرویس

این کلاس شبیه کلاس های دیگر است با برچسب @WebService و متد هایی از این کلاس که باید قابلیت فراخوانی از طریق کلاینت ها را داشته باشند باید برچسب @WebMethod  خورده باشند.

مثال:

@WebService

public class SayHelloEndpoint }

 

    private SayHelloServiceImpl service;

 

    public SayHelloServiceImpl getService(){

        return service;

   }

 

    public void setService(SayHelloServiceImpl service(){

        this.service = service;

   }

 

    public SayHelloEndpoint(){

        this.service = new SayHelloServiceImpl();

   }

 

@WebMethod

    public String sayHello(String name){

 

        String ret = "nothing";

        if (name != null) {

            ret = service.sayHello(name);

}

 

        return ret;

   }

   

تعریف Endpoint ها

ابتدا فایلی بنام sun-jaxws.xml در WEB-INF ایجاد می کنیم. این فایل محل قرارگیری تنظیمات Endpoint هاست. مثال:

 

 

 

   

            url-pattern='/services2/SayHello'/>

 

   

              implementation="com.behsazan.corebanking.cms.webservice.endpoint.ChangeCardTransLimitEndpoint"

              url-pattern="/services2/ChangeCardTransLimit" />

   

 

 

 

اضافه کردن وابستگی ها به pom.xml

بعضی از این کتابخانه ها لزوماً نباید باشد اما با این ها حتماً کار می کند.

 

        

            javax.xml.bind

            jaxb-api

            2.2

       

       

            com.sun.xml.bind

            jaxb-impl

            2.2.6

       

       

            com.sun.xml.bind

            jaxb-xjc

            2.2.1.1

       

       

            javax.xml.ws

            jaxws-api

            2.2.1

       

       

            com.sun.xml.ws

            jaxws-rt

            2.1.7

       

       

            com.sun.xml.ws

            jaxws-tools

            2.1.7

       

تنظیمات web.xml

برای اینکه بتواند وب سرویس ها را به سمت سرولت JAX-WS هدایت کنیم:

 

        com.sun.xml.ws.transport.http.servlet.WSServletContextListener

   

   

        JAX-WS endpoint

        WSServlet

        WSServlet

        com.sun.xml.ws.transport.http.servlet.WSServlet

        1

   

   

        WSServlet

        /services2/*

   

 

تست

برنامه را اجرا کرده در آدرس بار نام Endpoint مورد نظر را می زنیم :

 

که چنین صفحه ای باید مشاهده شود:

 

همانطور که مشاهده می شود فایل wsdl  تولید شده با کلیک بر روی لینک می توان wsdl آنرا مشاهده کرد:

 

و فایل xsd آن که در کادر قرمز رنگ مشاهده می شود:

 

فایل pdf

فایل word