您的位置:首页 > 编程语言 > Java开发

Spring集成XFire开发WebService

2009-12-22 23:11 246 查看
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

来验证是否部署成功了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: