Spring集成XFire开发WebService

Spring集成XFire开发WebService

 

Spring是目前最流行的JavaEE Framework,但是使用SpringSpring-WS开发WebService却十分繁琐。XFire是一个简化WebService开发的开源项目,通过SpringXFire的结合可以大大简化基于Spring Framework的应用中的WebService开发。

SpringXFire可以通过多种方式结合,下文介绍的是笔者常用的一种简单而实用的方法。所用的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的监听器,同基于springWeb项目一样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>

好了现在你可以通过http://127.0.0.1:8080/XFireWS1/services/HelloWS?wsdl来验证是否部署成功了。

—————————————————————————————————————


SCEA SCBCD MCSD
IBM Certified Specialist RUP
IBM Certified Solution Designer OOA&D UML v2
北京天融信软件架构师
SUN,Microsoft培训中心特邀高端教师
常年提供架构咨询服务
[email protected] 010-82776427

你可能感兴趣的:(Spring集成XFire开发WebService)