spring+xfire实现webservice简单例子

spring xfire是一种比较简单的webservcie方式,下面的步骤描述一个例子。
基本流程是:
1.加载spring,xfire jar文件
2.web.xml加载applicationContext.xml,xfire
3.创建java服务工程,创建远程对外服务接口,实现类,model对象
4.在applicationContext.xml中部署服务
5.测试webservice

 

1.创建一个web工程,加入Maven,pom.xml代码见:

<dependencies>
  <dependency>
      <groupId>org.codehaus.xfire</groupId>
      <artifactId>xfire-aegis</artifactId>
      <version>1.2.4</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.xfire</groupId>
      <artifactId>xfire-spring</artifactId>
      <version>1.2.4</version>
    </dependency>
    <dependency>
      <groupId>xalan</groupId>
      <artifactId>xalan</artifactId>
      <version>2.7.0</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>2.0</version>
    </dependency>
    </dependencies>

 
如果没有使用Maven,将如下jar文件加载到classpath下面:
activation-1.1.jar
aopalliance-1.0.jar
avalon-framework-4.1.3.jar
commons-attributes-api-2.1.jar
commons-beanutils-1.7.0.jar
commons-codec-1.3.jar
commons-httpclient-3.0.jar
commons-logging-1.1.jar
jaxen-1.1-beta-9.jar
jdom-1.0.jar
junit-3.8.1.jar
log4j-1.2.12.jar
logkit-1.0.1.jar
mail-1.4.jar
qdox-1.5.jar
servlet-api-2.3.jar
spring-1.2.6.jar
spring-aop-2.0.jar
spring-beans-2.0.jar
spring-context-2.0.jar
spring-core-2.0.jar
spring-web-2.0.jar
stax-api-1.0.1.jar
stax-utils-snapshot-20040917.jar
wsdl4j-1.6.1.jar
wstx-asl-3.2.0.jar
xalan-2.7.0.jar
xbean-2.2.0.jar
xbean-spring-2.7.jar
xercesImpl-2.6.2.jar
xfire-aegis-1.2.4.jar
xfire-annotations-1.2.4.jar
xfire-core-1.2.4.jar
xfire-spring-1.2.4.jar
xfire-xmlbeans-1.2.4.jar
xml-apis-1.0.b2.jar
xmlParserAPIs-2.6.2.jar
XmlSchema-1.1.jar

 

2.编辑web.xml

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext*.xml</param-value>
 </context-param>
 <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
 <servlet>
  <servlet-name>xfire</servlet-name>
  <servlet-class>
   org.codehaus.xfire.spring.XFireSpringServlet
  </servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>xfire</servlet-name>
  <url-pattern>/service/*</url-pattern>
 </servlet-mapping>

 

3.创建java服务工程,在web工程中关联该java工程或将java服务工程打包jar放到web工程classpath下面。
服务对外接口:org.simpledev.spring.xfire.service

HelloService
 String sayHello(String username) throws RemoteException;
 User listUserById(int id) throws RemoteException;

 

接口实现类:org.simpledev.spring.xfire.service.impl

HelloServiceImpl implements HelloService
 public User listUserById(int id) throws RemoteException {
  System.out.println("server listUserById invoke");
  User user = new User(id,"纪纱","女",12,"日本都立海原高校");
  return user;
 }
 public String sayHello(String username) throws RemoteException {
  System.out.println("server sayHello invoke");
  return "你好 " + username;
 }

 

model对象
  属性:id,username,sex,age,address
  提供构造函数
  每个属性提供getXXX(),setXXX()方法

 

4.编辑applicationContext.xml
 

<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" /> 
 <bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">  
  <property name="serviceFactory" ref="xfire.serviceFactory" />  
  <property name="xfire" ref="xfire" /> 
 </bean> 
 <bean id="userWS" class="org.simpledev.spring.xfire.service.impl.HelloServiceImpl">
 </bean> 
 <bean id="userService" parent="baseWebService">  
  <property name="serviceBean" ref="userWS" />  
  <property name="serviceClass" value="org.simpledev.spring.xfire.service.HelloService" /> 
 </bean>

 

测试部署是否成功,发布web工程,在IE地址栏中输入: http://127.0.0.1:8080/springxfire/service/,出现链接后: http://127.0.0.1:8080/springxfire/service/HelloService?wsdl
表示部署成功

 

5.测试工程

public static void main(String[] args) {
  try {
   Service serviceModel = new ObjectServiceFactory().create(HelloService.class);
   HelloService service = (HelloService) new XFireProxyFactory().create(
     serviceModel,
     "http://127.0.0.1:8080/springxfire/service/HelloService");
   //方法一 测试
   String str = service.sayHello("世界");
   System.out.println(str);
   //方法二 测试
   User user = service.listUserById(1);
   System.out.println("id:"+user.getId());
   System.out.println("username:"+user.getUsername());
   System.out.println("sex:"+user.getSex());
   System.out.println("age:"+user.getAge());
   System.out.println("address:"+user.getAddress());
  } catch (MalformedURLException e) {
   e.printStackTrace();
  } catch (RemoteException e) {
   e.printStackTrace();
  }
 }

 
 发现的问题:在实际项目中,
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>2.0</version>
    </dependency>一些jar包与原来项目中的spring jar可能会产生冲突,可以将spring-web jar去掉或覆盖,如下:
(
aopalliance-1.0.jar
avalon-framework-4.1.3.jar
commons-logging-1.1.jar
log4j-1.2.12.jar
logkit-1.0.1.jar
servlet-api-2.3.jar
spring-aop-2.0.jar
spring-beans-2.0.jar
spring-context-2.0.jar
spring-core-2.0.jar
spring-web-2.0.jar
)
其次web.xml中注意加载:xfire,否则测试是否部署成功时,http://.../service/,其实请求的就是在web.xml中配置的servlet

Spring集成XFire开发WebService Spring是目前最流行的JavaEE Framework,但是使用Spring的Spring-WS开发WebService却十分繁琐。XFire是一个简化WebService开发的开源项目,通过Spring和XFire的结合可以大大简化基于Spring Framework的应用中的WebService开发。 Spring和XFire可以通过多种方式结合,下文介绍的是笔者常用的一种简单而实用 阅读详情

相关推荐

Xfire+Spring构建WebService服务器和客户端

Xfire简介 XFire是新一代的Java WebService引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring集成,它使得Java开发人员终于可以获得和.Net开发人员一样的开发效率。   XFire是codeHaus组织提供的一个开源框架,它构建了POJO和SOA之间的桥...

江涛的博客 956

Webservice服务开发之XFire+Spring整合(使用DispatcherServlet方式)

一、XFire概述   XFire是codeHaus组织提供的一个开源的Web Service框架,它构建了普通Java对象和服务架构之间的桥梁,支持将普通Java对象通过非常简单的方式发布成Web服务,这种处理方式大大简化了Java应用转化为Web服务的步骤和过程,也直接降低了服务架构的实现难度。虽然XFire在2007年后已停止更新(目前XFire框架最后一个版本为1.2.6),但由于它可以...

weixin_34293911的博客 439

用XFire开发WebService+Spring注解

用XFire开发WebService Spring注解

java 吃饭 洗手,XFire与Spring结合的几种方式。

1、使用org.codehaus.xfire.spring.XFireSpringServlet与ServiceBean1.1 web.xml的配置Spring Image DatabaseSpring Image Database sample applicationcontextConfigLocationclasspath:applicationContext-webservice.xmlo...

weixin_29911401的博客 301

stax-utils-20040917.jar

stax-utils-20040917.jar

xfire实现web service入门实例

初学xfire webservice使用

实现WebServices二:使用XFireSpringServlet与ServiceBean

使用XFire进行web services开发有三种方式: 1. 不集成Spring: 配置services.xml 文件和web.xml(配置org.codehaus.xfire.transport.http.XFireConfigurableServlet servlet) 2. Spring使用XFireSpringServlet方式。 3.Spring集成使用org.sp

bubaxiu的专栏 2300

CKA考试实战指南--从备考到通关的完整攻略

本文提供了一份全面的CKA考试实战指南,涵盖从备考规划、资源选择到高效练习环境搭建的全过程。重点解析了考试核心内容,特别是占分30%的故障排除难点,并分享了集群升级、etcd备份等高频考点的突破技巧与临场实战策略,帮助考生系统掌握Kubernetes实操技能,顺利通过认证。

weixin_28839549的博客 490

配置Dot1q终结子接口实现跨设备VLAN间通信示例

示例图 一.实验目的 1.配置Dot1q终结子接口实现跨设备VLAN间通信示例 二.注意事项 1.Dot1q终结子接口和QinQ终结子接口不支持透传不带VLAN Tag的报文, 收到不带VLAN Tag的报文会直接丢弃 2.由于三层以太网子接口不支持VLAN报文,当它收到VLAN报文时,会将VLAN报文当成是 非法报文而丢弃,因此,需要在子接口上将VLAN Tag剥掉,也就是需要VLAN终结 三.VLAN终结简介 1.VLAN终结的实质包含两个方面: ①.对接口接收到报文,剥除VLAN标

qq_44751470的博客 7097

手势控制 Python !Leap Motion Python 开发教程 (二)

手势控制 Python !Leap Motion Python 开发教程 (二) 现在进入正题,我来给大家总结一下我在使用 Leap Motion 开发过程中的经验以及学到的东西,其中我会概括以及翻译官方给出的注释,为了让这些注释更加通俗易懂,让大家更好理解。 回顾 在上一篇文章中我们讲了如何配置 Leap Motion 的 Python 2.7 的开发环境,如果您还没有配置好您的开发环境,可以参...

成畅的博客 3193

使用XFire+Spring构建Web Service

早前的一篇文章,今天才发表,贴上来,:) 请勿转载 原文出处:http://tech.it168.com/j/2007-09-26/200709260923046.shtml XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。 相对于Axis来说,目前XFire相对受...

dawuafang 98

锐浪报表 Grid++Report 子报表 Delphi

锐浪报表 Grid++Report 是国内较好的报表控件,本人一直使用它,做出很多特色的报表。可以说你的报表设计出来,它基本上能做出来。 但是它帮助文件上,说的不深,近期因为要做一个有关社工的报表,大表中,嵌套2个子表。可以说,一个表到三个数据集,分别打印。 在认真看了帮助的基础上,网上探索,基本无此类,特别是Delphi的帮助,几乎为零。经二天摸索,做出来了。 一、设计思路 1、大表和二个小表,可以设计为三个表,分别使用三个GridppReport控件,取名...

lyhoo163的专栏 9074

Spring集成XFire开发WebService问题

最近在网上发现有spring集成XFire开发WebServiceMyEclipse新建webservice工程在Servlet class选择org.codehaus.xfire.spring.XFireSpringServlet配置如下:}  1、配置XFire Servlet  在web.xml中加入如下配置:<servlet><servlet-name>

dcju002的专栏 4466

【常见开源库的二次开发】基于openssl的加密与解密——openssl认识与配置(一)

OpenSSL 是一个开源的软件库,它提供了一系列加密工具和协议,主要用于实现安全通信,如在网络上的数据传输。它支持多种加密算法,包括对称加密、非对称加密、散列函数、伪随机数生成器、数字签名、密钥交换以及证书管理等。

嵌入式技术开发 4161

汽车行业OTD业务模式入门学习

本文是在学习彭俊松老师的《汽车行业整车订单交付系统》后,对于OTD理解的一些摘录,供诸位参考学习。

qq_40664711的博客 1万+

Spring中整合Xfire发布webservice服务

一、web.xml中配置xfire的servlet交由spring管理 contextConfigLocation /WEB-INF/applicationContext-*.xml org.springframework.web.context.ContextLoaderListener XFireServlet XFire Ser

天涯倚墨 3856

Pyinstaller打包为可执行文件编码错误的问题

Pyinstaller打包为可执行文件编码错误的问题 写好的python程序在vscode上运行没有任何问题,将程序利用pyinstaller打包后,运行程序发生了错误。 错误代码 UnicodeDecodeError: ‘utf-8' codec can't decode byte 0xce in position 20-21:invalid cotinuation byte 网上找到的解决方案是: 1.在命令行中输入 chcp 65001 2.按正常方式进行封装 pyinstaller

xuefeng_he的博客 1559

xfire+spring整合webservice

服务器端:  1、建立一个新的项目springXfireWebService (客户端)  2、在官网http://xfire.codehaus.org/Download中下载:xfire-distribution-1.2.6.zip (在建立项目后将所有jar包放到lib包中,测试删掉几个发现不行,似乎都是需要的,忘高手指明不足)和xfire-all-1.2.6.jar 。

shuhuai007的专栏 2458

Agile Modbus使用和学习笔记

i < len;这里仅仅需要提供获取函数即可,离散输入是只读类型i++) {return 0;只读类型寄存器i++) {return 0;i < len;

Car12 168

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

基于xFire的webService例子

最近在搞webService,结合网上的例子自己故总结一下,带大家利用xfire做一个webService接口,同时和spring相结合,相关的xfire的jar包,可以到xfire的官网上下载,然后在加上spring mvc ,spring等jar。。废话不多说,let's  go 1创建一个简单的SayXFireService接口,里面只有一个sayHello的方法 public inte

HelloWorld 1581

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Xfire在Spring下实现安全的WebService详述---配置

<br />xfire和Spring良好的结合,促使我将原有的axis方式改造到xfire方式。下面将整个过程简述一下,首先看一下如何配置xfire。在Web.xml中有两种方式来配置xfire, <br />一种是通过spring提供的org.springframework.web.servlet.DispatcherServlet来实现,配置方法是这样的: <br />1、web.xml中配置 Java代码 <servlet>           <servlet-name>xfire</servlet

luoshizhao的专栏 1037

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

spring中集成xfire开发webservice

spring中集成xfire开发webservice1. lib中加入xfire需要的jar包2. spring中的配置                                                                       3. web.xml中的配置            xfire   org.codehaus.xfire.

leozhong的专栏 1049
上一篇: webwork中richtexteditor标签图片上传配置和创建中文多级目录乱码问题解决
下一篇: oracle创建用户和oracle导入导出命令说明
全新时代
博客等级 码龄19年 3粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值