Spring+xfire 整合

本文档介绍了如何将Spring与XFire进行整合以创建Webservice。步骤包括:1) 下载并导入XFire相关库;2) 配置web.xml以启动XFireServlet;3) 在Spring配置文件中引入xfire.xml,定义服务及类映射;4) 创建Webservice类和客户端调用代码。完成以上步骤后,可以在Firefox中通过URL查看Wsdl。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

花了一天的时间终于搞定了,总结一下:

  1,下载xfire包,去官网下载即可

  2,导入相关jar包

  3,在web.xml增加配置:

     <servlet>
    <servlet-name>xfire</servlet-name>
    <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
     <load-on-startup>0</load-on-startup>
    </servlet>
   
    <servlet-mapping>  
        <servlet-name>xfire</servlet-name>  
        <url-pattern>/servlet/XFireServlet/*</url-pattern>  
    </servlet-mapping>
   
    <servlet-mapping>
  <servlet-name>xfire</servlet-name>
  <url-pattern>/services/*</url-pattern>
  </servlet-mapping>

4,在spring的配置文件中加入:

   <import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>  //引入
   <bean name="addressingHandler" class="org.codehaus.xfire.addressing.AddressingInHandler"/>
   <bean name="taskFinance" class="com.service.webservice.FinanceServicews" parent="taskJob"/> //这里是自己写的类
 
   
   <bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter"
  lazy-init="false" abstract="true">
  <!-- 引用xfire.xml中定义的工厂 -->
  <property name="serviceFactory" ref="xfire.serviceFactory" />
  <!-- 引用xfire.xml中的xfire实例 -->
  <property name="xfire" ref="xfire" />
 </bean>
 
 <bean id="taskFinanceService" parent="baseWebService">
  <!-- 业务服务bean -->
  <property name="serviceBean" ref="taskFinance" /> //这里需要配置
  <!-- 业务服务bean的窄接口类 -->
  <property name="serviceClass" value="com.caakee.service.webservice.TaskServicews" /> //这里也需要配置
 </bean>

5,webservice 类和client类自己搜索一下,网上有很多。

6,在FireFox url中输入http://localhost:8080/xx(projectName)/services/ 即可看见wsdl. 如果要是在IE中输入就需要输入:http://localhost:8080/xx(projectName)/services/taskFinance?wsdl

package com.xfire.core.client; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.service.binding.ObjectServiceFactory; import com.xfire.core.entity.UserInfo; import com.xfire.core.service.IUserInfoService; /** *@author jilongliang *@Date 2012-3-5 * */ public class UserInfoClient { public static void main(String[] args) { getServiceList(); setServiceList(); } static String url = "http://localhost:8081/xfire/services/UserInfo"; /** * */ public static void getServiceList() { Service service = new ObjectServiceFactory() .create(IUserInfoService.class); try { IUserInfoService iAddressService = (IUserInfoService) new XFireProxyFactory() .create(service, url); List list = (ArrayList) iAddressService .getAddressList(); System.out.println("一共多少条数据:" + list.size()); for (Iterator iter = list.iterator(); iter.hasNext();) { UserInfo a = iter.next(); System.out.println(a); } } catch (MalformedURLException e) { e.printStackTrace(); } } public static void setServiceList() { Service service = new ObjectServiceFactory() .create(IUserInfoService.class); try { IUserInfoService iAddressService = (IUserInfoService) new XFireProxyFactory() .create(service, url); List listAdd = new ArrayList(); UserInfo address = new UserInfo(); address.setIdentifier(1); address.setCountry("中國"); address.setProivice("廣東省"); address.setCity("陽江"); address.setAddress("廣東陽春"); address.setPostCode("1111111"); address.setExist(false); address.setArrary(new String[] { "22", "23", "24" }); listAdd.add(address); address.setIdentifier(2); address.setCountry("中國"); address.setProivice("廣東省"); address.setCity("陽江"); address.setAddress(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值