JAX-WS 与 Spring 集成

本文介绍的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

猜你喜欢

转载自qgl.iteye.com/blog/2073060