ring集成XFire开发We ervice
文章作者 100test 发表时间 2007:11:28 14:37:39
来源 100Test.Com百考试题网
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配置文件
| <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <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>
 <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>
 </web-app>
 | 
  3 定义接口及实现服务
  定义接口,这个接口中定义要通过WebService暴露的方法
| package org.ccsoft. 
 publicinterface HelloWS {
 public String sayHello(String sb).
 }
 |