Spring是目前最流行的 JavaEE Framework,但是使用 Spring的 Spring-WS开发 WebService却十分繁琐。 XFire是一个简化 WebService开发的开源项目,通过 Spring和 XFire的结合可以大大简化基于 Spring Framework的应用中的 WebService开发。
Spring和 XFire可以通过多种方式结合,下文介绍的是笔者常用的一种简单而实用的方法。所用的 Spring版本为 2.0,XFire版本为 1.2.6。
1 配置 XFire Servlet
在 web.xml中加入如下配置:
< servlet >
< servlet-name > XFireServlet </ servlet-name >
< servlet-class >
org.codehaus.xfire.spring.XFireSpringServlet
</ servlet-class >
</ servlet >
< servlet-mapping >
< servlet-name > XFireServlet </ servlet-name >
< url-pattern > /servlet/XFireServlet/* </ url-pattern >
</ servlet-mapping >
< servlet-mapping >
< servlet-name > XFireServlet </ servlet-name >
< url-pattern > /services/* </ url-pattern >
</ servlet-mapping >
2 配置 Spring 的监听器,同基于 spring 的 Web 项目一样 Spring 的监听器是必不可少的。
< context-param >
< param-name > contextConfigLocation </ param-name >
< param-value >
classpath:org/codehaus/xfire/spring/xfire.xml,
/WEB-INF/applicationContext.xml
</ param-value >
</ context-param >
< listener >
< listener-class >
org.springframework.web.context.ContextLoaderListener
</ listener-class >
</ listener >
以下是完整的 web.xml 配置文件
3 定义接口及实现服务
定义接口,这个接口中定义要通过 WebService 暴露的方法
package org.ccsoft;
public interface HelloWS {
public String sayHello(String sb);
}
实现服务
package org.ccsoft;
public class HelloWSImp implements HelloWS {
public String sayHello (String sb) {
// TODO Auto-generated method stub
return "Hello " +sb;
}
}
4 配置服务
将上文中实现的服务,加入到 spring 的配置文件中。
好了现在你可以通过 http://127.0.0.1:8080/XFireWS1/services/HelloWS?wsdl 来验证是否部署成功了。