第一步:新建web项目
创建服务接口 public interface SayHiService { public String sayHi(String jsonStr); }
其实现类,添加webservice注解 import javax.jws.WebParam; import javax.jws.WebService; import javax.jws.soap.SOAPBinding;
@WebService @SOAPBinding (style = SOAPBinding .Style. RPC ) public class SayHiServiceImpl implements SayHiService {
@Override public String sayHi( @WebParam (name= "jsonStr" ) String jsonStr) { return "Hi " + jsonStr + ", Welcome to WS World!" ; }
}
服务发布测试类:
import javax.xml.ws.Endpoint;
public class WsServerStart { public static void main(String[] args) { SayHiService ws = new SayHiServiceImpl(); Endpoint.publish( " http://localhost:8080/WebService/hello " , ws); } }
运行该测试类,在浏览器中输入 http://localhost:8080/WebService/hello 看到如下界面,即为服务发布成功:
第二步:将web服务部署到服务器
在项目WEB-INF下创建2个xml配置文件: 1)sun-jaxws.xml 指定webservice的实现类 <? xml version = "1.0" encoding = "UTF-8" ?> < endpoints xmlns = "http://java.sun.com/xml/ns/jax-ws/ri/runtime" version = "2.0" > < endpoint name = "HelloWorld" implementation = "com.jow.SayHiServiceImpl" url-pattern = "/hello" /> </ endpoints >
2)web.xml 指定监听器和servlet <? xml version = "1.0" encoding = "UTF-8" ?> <! DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd" > < web-app > < listener > < listener-class > com.sun.xml.ws.transport.http.servlet.WSServletContextListener </ listener-class > </ listener > < servlet > < servlet-name > hello </ servlet-name > < servlet-class > com.sun.xml.ws.transport.http.servlet.WSServlet </ servlet-class > < load-on-startup > 1 </ load-on-startup > </ servlet > < servlet-mapping > < servlet-name > hello </ servlet-name > < url-pattern > /hello </ url-pattern > </ servlet-mapping > < session-config > < session-timeout > 120 </ session-timeout > </ session-config > </ web-app >
导入jar包: 由于 WSServletContextListener 和 WSServlet 需要引入jar包
导入jaxws-ri-2.2.8下的jar包即可
第三步:部署webservice项目 导出war包,上传至tomcat中webapps目录下即可
验证 在浏览器中输入; http://localhost:8080/WebService/hello
出现以下界面,即为服务部署成功: