先注意以下内容:
1. xfire官网上下载的例子,基本上不能用,因为xfire1.2.6默认使用的是spring1.x的,到了2.x,找不到org.springframework.web.servlet这个包了。
 
2. 网上教的方法,大多都是照例子,很容易出错。
 
ok,下面进入正题,记录一下xfire的使用方法。
 
从网站上下载到xfire发行版,约18M,建议使用发行版,里面包含了一些例子,更重要的是依赖包都放在lib目录下了,使得项目开发更方便。
 
myeclipse下,新建一个web项目(没有用web service project的方式,不太会用)。
导入以下依赖包:
650) this.width=650;" border=0>
 
除了spring.jar之外,都在xfire-1.2.6/lib目录下。
 
由于使用spring,因此在web.xml中添加以下内容
 
<web-app>
  <!-- Spring配置 -->        
  <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:org/codehaus/xfire/spring/xfire.xml, classpath:applicationContext.xml</param-value>
        </context-param>
        
  <listener>    
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    
  </listener>        
    
        
  <!-- XFire 配置 -->    
    
  <servlet>    
        <servlet-name>xfireServlet</servlet-name>    
        <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>    
  </servlet>    
  <servlet-mapping>    
        <servlet-name>xfireServlet</servlet-name>    
        <!-- 在这个URI下开放Web Service服务 -->    
        <url-pattern>/service/*</url-pattern>    
  </servlet-mapping>    
</web-app>
 
先导入spring配置文件的路径,要注意的是,这里使用了xfire提供的配置文件,位于:org.codehaus.xfire.spring.xfire.xml。
然后就是spring的配置文件了,applicationContext.xml。
 
applicationContext.xml的配置很简洁。
  <bean id="helloService" class="sa.fs121.soap.service.impl.HelloServiceImpl" />
  <bean id="getHelloService" class="org.codehaus.xfire.spring.ServiceBean">
    <property name="serviceBean" ref="helloService" />
    <property name="serviceClass" value="sa.fs121.soap.service.IHelloService" />
    <property name="inHandlers">
      <list>
        <ref bean="addressingHandler" />
      </list>
    </property>
  </bean>
  <bean id="addressingHandler" class="org.codehaus.xfire.addressing.AddressingInHandler" />
  
 
这个配置文件,细节方面还不是很了解,有待于深入下源码。
 
ok,还差业务代码。
 
IHelloService.java
public interface IHelloService {
  public String sayHello(String hello);
}
 
实现类:
HelloServiceImpl.java
public class HelloServiceImpl implements IHelloService {
  public String sayHello(String hello) {
    System.out.println("接收客户端请求:" + hello);
    return "Hello XFire, " + hello;
  }
}
 
到这里,全部的代码就写完了。
结构如下:
650) this.width=650;" border=0>
 
启动tomcat服务器,访问:http://localhost:8080/xfire/service/?wsdl,正确的话,可以访问到wsdl。
650) this.width=650;" border=0>
 
使用Spring测试:
test.xml为配置文件:
 
<beans>
  <bean id="testWebService" class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
    <property name="serviceClass" value="sa.fs121.soap.service.IHelloService" />
    <property name="wsdlDocumentUrl" value="http://localhost:8080/xfire/service/IHelloService?wsdl" />
  </bean>
</beans>
 
测试代码:
 
public static void main(String[] args) {
    ApplicationContext ctx = new ClassPathXmlApplicationContext("test.xml");
    IHelloService hs = (IHelloService) ctx.getBean("testWebService");
    System.out.println("服务器响应:" + hs.sayHello("hello, webservice"));
  }
 
搞定。

http://blog.163.com/likui_1314159/blog/static/770932122010112612211126/

转载于:https://blog.51cto.com/2005713/562442

在web项目中集成xfire的方法相关推荐

  1. maven mybatis mysql_Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问...

    标签: 本篇内容还是建立在上一篇Java Web学习系列--Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Ja ...

  2. Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  3. java输出的汉字变成乱码_Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  4. java web应用 生僻字_Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  5. web工程中集成cas单点登录

    背景 cas的服务端已经搭建成功,现在需要在web项目中集成cas client.我们项目使用spring 1.在pom中配置 <!--cas单点登录 --><dependency& ...

  6. java socket建立长连接_Java Web项目中使用Socket通信多线程、长连接的方法

    很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听.我们的应用场景是在java项目中,需要外接 ...

  7. java web access_Java Web项目中连接Access数据库的配置方法

    本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...

  8. java工程编辑器中文乱码_Java Web开发项目中中文乱码解决方法汇总

    Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存 ...

  9. 在Web项目中保存会话的两种方法:Cookie和Session

    Web浏览器是与Web服务器之间的会话是一个不保持的会话,浏览器发起请求,建立会话,获得结果后,会话就不在了.然而,在涉及到用户登录Web项目中,开发人员必须有一种方法,区分用户登录前后的状态,以便对 ...

最新文章

  1. windows错误:Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.
  2. 最大最完整的---NAG Fortran 算法库
  3. python3 random模块_Python3 中 random模块
  4. mono for android定义,2.1.3 使用Mono for Android的原因
  5. 相继平均法matlab代码_matlab实现不同平均数的求法
  6. STM32的Altium Designer原理图PCB封装库下载
  7. breakall lisp文件_breakall.lsp下载
  8. 给你介绍Python代码中下划线的魔幻魅力!
  9. APP性能测试-FPS测试
  10. python 制作 gif 动态图
  11. java集合框架的练习之斗地主洗牌发牌的模拟(升级版)
  12. Python绘制表白爱心源码【女神看了绝对不会拒绝的你的表白嘿嘿】
  13. 创建IRP的相关内容
  14. unity官方社区,来一起学习
  15. synopsys软件安装
  16. Python-字典学习笔记(完)
  17. BPM端到端流程解决方案分享
  18. 无法识别 移动固态硬盘_M.2固态硬盘不能识别怎么办 Bios开启CSM识别M.2固态硬盘方法...
  19. 求大神赐教,如何实现echarts自定义legend的样式 如图下的这种
  20. Unity3D之Windows端隐藏任务栏图标并添加至托盘

热门文章

  1. simplis汉化包_Simtrix.simplis仿真_中文教程
  2. 用HTML制作表单表格能学到什么,Html学习之十七(表格与表单学习--排行版制作)...
  3. 10060 mysql_navicat连接mysql服务端报10060错误解决过程如下
  4. php文件上传接口测试,七牛云存储-用php上传图片,我在本地测试,用php接口,不成功...
  5. PHP学习笔记02:自然数列求和
  6. HTML学习笔记:设置文本字体
  7. 【BZOJ3622】已经没有什么好害怕的了,两次DP
  8. 【英语学习】【English L06】U05 Appointments L4 Making an appointment with a doctor
  9. 不同网站不同网卡_弄清高端网站建设的独特不同之处才能做好网站
  10. mysql的缓存机制是什么意思_MySQL缓存机制详解