修改上一篇server的工程。删除sun-jaxws.xml和wsdl文件夹以及生成的webservice相关代码。只保留Hello类。
引入spring的相关jar包到server工程。spring整合jaxws还需jaxws-spring-1.9.jar和xbean-spring-3.14.jar两个包。可以通过maven下载。
<dependency> <groupId>org.jvnet.jax-ws-commons.spring</groupId> <artifactId>jaxws-spring</artifactId> <version>1.9</version> </dependency>
修改web.xml,引入spring的配置
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <servlet> <servlet-name>jaxws-servlet</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSSpringServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>jaxws-servlet</servlet-name> <url-pattern>/HelloService</url-pattern> </servlet-mapping>
修改applicationContext.xml,将Hello交给spring的容器管理。同时声明Hello为一个webservice
<bean id="hello" class="com.test.Hello" /> <wss:binding url="/HelloService"> <wss:service> <ws:service bean="#hello" /> </wss:service> </wss:binding>
Hello类保持不变
@WebService
public class Hello {
@WebMethod
public List<String> say(Student s) {
List<String> list = new ArrayList<String>();
list.add(s.getId()+"");
list.add(s.getName());
list.add(s.getAddress());
return list;
}
}
最后工程结构
发布工程到tomcat,通过http://localhost:8080/HelloWorldServer/HelloService?wsdl取到wsdl证明一切OK。