前面一篇《jbossws快速入门》指出,使用jax-ws开发web service难度大大减低。本文再以Metro为示例,写一个简短的教程。
注:Metro,是GlassFish服务器的子项目,大家可以浏览jax-ws参考实现了解更多的信息。
Web Service EndPoint
package helloservice; @javax.jws.WebService( serviceName="HelloService", name="Hello", targetNamespace="http://www.jboss.org/example") public class HelloBean { private String message = new String("Hello, "); @javax.jws.WebMethod public String sayHello(String name) { return message + name + "."; } }
Deploy Web Service
在部署文件web.xml里加入监听器及适配器。
<listener> <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> </listener> <servlet> <servlet-name>HelloService</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloService</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
还需要在部署文件sun-jaxws.xml描述EndPoint。
<?xml version="1.0" encoding="UTF-8"?> <endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'> <endpoint name='HelloService' implementation='helloservice.HelloBean' url-pattern='/hello'/> </endpoints>
如果没有配置,无法使用/hello进行访问,但可以用HelloService?wsdl进行访问到,这是适配器的作用。