在web项目中集成xfire的方法
先注意以下内容:
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的方法相关推荐
- maven mybatis mysql_Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问...
标签: 本篇内容还是建立在上一篇Java Web学习系列--Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Ja ...
- Java Web项目中解决中文乱码方法总结
一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...
- java输出的汉字变成乱码_Java Web项目中解决中文乱码方法总结
一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...
- java web应用 生僻字_Java Web项目中解决中文乱码方法总结
一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...
- web工程中集成cas单点登录
背景 cas的服务端已经搭建成功,现在需要在web项目中集成cas client.我们项目使用spring 1.在pom中配置 <!--cas单点登录 --><dependency& ...
- java socket建立长连接_Java Web项目中使用Socket通信多线程、长连接的方法
很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听.我们的应用场景是在java项目中,需要外接 ...
- java web access_Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
- java工程编辑器中文乱码_Java Web开发项目中中文乱码解决方法汇总
Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存 ...
- 在Web项目中保存会话的两种方法:Cookie和Session
Web浏览器是与Web服务器之间的会话是一个不保持的会话,浏览器发起请求,建立会话,获得结果后,会话就不在了.然而,在涉及到用户登录Web项目中,开发人员必须有一种方法,区分用户登录前后的状态,以便对 ...
最新文章
- windows错误:Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.
- 最大最完整的---NAG Fortran 算法库
- python3 random模块_Python3 中 random模块
- mono for android定义,2.1.3 使用Mono for Android的原因
- 相继平均法matlab代码_matlab实现不同平均数的求法
- STM32的Altium Designer原理图PCB封装库下载
- breakall lisp文件_breakall.lsp下载
- 给你介绍Python代码中下划线的魔幻魅力!
- APP性能测试-FPS测试
- python 制作 gif 动态图
- java集合框架的练习之斗地主洗牌发牌的模拟(升级版)
- Python绘制表白爱心源码【女神看了绝对不会拒绝的你的表白嘿嘿】
- 创建IRP的相关内容
- unity官方社区,来一起学习
- synopsys软件安装
- Python-字典学习笔记(完)
- BPM端到端流程解决方案分享
- 无法识别 移动固态硬盘_M.2固态硬盘不能识别怎么办 Bios开启CSM识别M.2固态硬盘方法...
- 求大神赐教,如何实现echarts自定义legend的样式 如图下的这种
- Unity3D之Windows端隐藏任务栏图标并添加至托盘
热门文章
- simplis汉化包_Simtrix.simplis仿真_中文教程
- 用HTML制作表单表格能学到什么,Html学习之十七(表格与表单学习--排行版制作)...
- 10060 mysql_navicat连接mysql服务端报10060错误解决过程如下
- php文件上传接口测试,七牛云存储-用php上传图片,我在本地测试,用php接口,不成功...
- PHP学习笔记02:自然数列求和
- HTML学习笔记:设置文本字体
- 【BZOJ3622】已经没有什么好害怕的了,两次DP
- 【英语学习】【English L06】U05 Appointments L4 Making an appointment with a doctor
- 不同网站不同网卡_弄清高端网站建设的独特不同之处才能做好网站
- mysql的缓存机制是什么意思_MySQL缓存机制详解