Lotus教程、Java教程、Java虚拟机、Java软件综合开发社区

Lotus、Domino、Java、C#、Web、数据库综合开发教程、资料社区

Spring集成XFire开发WebService



Published by admin on 03月 28, 2010

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);

  }

  实现服务

  package org.ccsoft;

  publicclass HelloWSImp implements HelloWS {

  public String sayHello(String sb) {

  // TODO Auto-generated method stub

  return”Hello “+sb;

  }

  }

  4 配置服务

  将上文中实现的服务,加入到spring的配置文件中。

  <?xml version=”1.0″ encoding=”UTF-8″?>

  <beans xmlns=”http://www.springframework.org/schema/beans”

  xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

  xsi:schemaLocation=”

  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd”>

  <bean id=”helloWS” class=”org.ccsoft.HelloWSImp”/>

  <bean name=”helloService” class=”org.codehaus.xfire.spring.ServiceBean”>

  <property name=”serviceBean” ref=”helloWS”/>

  <property name=”serviceClass” value=”org.ccsoft.HelloWS”/>

  <property name=”inHandlers”>

  <list>

  <ref bean=”addressingHandler”/>

  </list>

  </property>

  </bean>

  <bean id=”addressingHandler” class=”org.codehaus.xfire.addressing.AddressingInHandler”/>

  </beans>



【版权说明】:本网页上有部分内容来源于网上收集,但不能保证资料的完整性和准确性,仅提供参考和学习。如有侵权请立即通知我们,我们将立即删除,谢谢合作!

Comments are closed.