本文介绍的webservice是建立在与spring集成的条件下【jdk自带的webservices会占用一个独立的端口,通过这个方法配置不需要】
1、修改WEB.XML文件,在spring的监听器配置之后加上如下内容
<servlet> <servlet-name>JAXWSServlet</servlet-name> <servlet-class> com.sun.xml.ws.transport.http.servlet.WSSpringServlet </servlet-class> <load-on-startup>5</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JAXWSServlet</servlet-name> <url-pattern>/getNameWS</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>JAXWSServlet</servlet-name> <url-pattern>/getCountWS</url-pattern> </servlet-mapping>
这里创建了2个webservices,访问路径是http://xxx:xxx/xxx/getNameWS?wsdl 和 http://xxx:xxx/xxx/getCountWS?wsdl
2、编写webservice实现类
@WebService @Component public class GetNameWSImpl{ @Resource private XXDao xxDao; @WebMethod public XXVO searchName(String id) throws Exception { XXVO returnVO try { returnVO = xxDao.xxx(id); } catch (Exception e) { e.printStackTrace(); throw new Exception("webservice内部异常"); } return returnVO; } }
3、spring配置文件里添加如下内容
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ws="http://jax-ws.dev.java.net/spring/core" xmlns:wss="http://jax-ws.dev.java.net/spring/servlet" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://jax-ws.dev.java.net/spring/core http://jax-ws.dev.java.net/spring/core.xsd http://jax-ws.dev.java.net/spring/servlet http://jax-ws.dev.java.net/spring/servlet.xsd"> <wss:binding url="/getNameWS"> <wss:service> <ws:service bean="#getNameWSImpl" /> <!--注入实现类--> </wss:service> </wss:binding> </beans>
需要添加的jar包有:gmbal-api-only.jar/jaxb-impl.jar/jaxws-api.jar/jaxws-rt.jar/jaxws-spring-1.8.jar/management-api.jar/policy.jar/stax-ex.jar/streambuffer.jar/xbean-spring-3.0.jar