تازه ها
چگونه یک وب سرویس با 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 آن که در کادر قرمز رنگ مشاهده می شود: