Spring集成XFire开发WebService

Spring集成XFire开发WebService

 

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;

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 的配置文件中。

<?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 来验证是否部署成功了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值