首先,前提是已经导入了所有XFire需要的包。
1.在web.xml中配置XFire
<servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> <!-- 不整合spring时使用这个servlet--> org.codehaus.xfire.transport.http.XFireConfigurableServlet</span> </servlet-class> </servlet>2.在WEB-INF/META-INF目录下建立文件夹xfire,xfire目录下建立xfire配置文件services.xml,内容如下
<?xml version="1.0" encoding="UTF-8"?> <beans> <service xmlns="http://xfire.codehaus.org/config/1.0" xmlns:s="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"> <name>MyClient</name> <serviceClass>com.client.service.IService</serviceClass> <implementationClass>com.client.service.IServiceImpl</implementationClass> </service> </beans>
如果项目使用到Spring,XFire的实现类需要用到依赖注入,使用普通的注入方式是不行的,需要进行XFire和Spring的整合配置,步骤如下。
1.在web.xml中配置XFire
<servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> <!-- 整合spring时使用这个servlet --> org.codehaus.xfire.spring.XFireSpringServlet </servlet-class> </servlet>
另外,需要在contextConfigLocation中加入XFire的配置
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring/*.xml,classpath:org/codehaus/xfire/spring/xfire.xml</param-value> </context-param>
2.在Spring中XFire的bean配置
<!--xfire服务信息配置--> <bean name="servcie" class="org.codehaus.xfire.spring.ServiceBean"> <property name="name" value="MyClient"></property> <property name="serviceBean" ref="IServiceImpl"></property> <property name="serviceClass" value="com.client.service.IService"></property> <property name="inHandlers"> <list> <ref bean="addressingHandler"/> </list> </property> </bean> <!--这个不需要改变,定义的是Handler--> <bean id="addressingHandler" class="org.codehaus.xfire.addressing.AddressingInHandler"> </bean>
通过上面两步,XFire与Spring的整合就完成了,IService接口的XFire 服务也配置好了,接口服务的名称为MyClient。