Spring4.x集成xfire1.26 问题汇总

WebService专栏之xfire集成异常总览

文章目录

  • 一、asm.jar包冲突
    • 1.1 问题现象
    • 1.2 问题定位:
    • 1.3 解决方案:
  • 二、 Old 1.x 'singleton' attribute in use
    • 2.1 问题现象
    • 2.2 问题定位
    • 2.3 解决方案:
  • 三、Unrecognized xbean element mapping
    • 3.1 问题定位
    • 3.2 解决方案:
  • 四、services.xml it does not exist
    • 4.1 问题现象
    • 4.2 解决方案:
  • 五、指定class默认缺省
    • 5.1 问题现象:
    • 5.2 问题定位
    • 5.3 解决方案:
  • 六 、解析依赖缺少
    • 6.1 问题现象
    • 6.2 问题定位:
    • 6.3 解决方案:
  • 七、发布服务失败
    • 7.1 问题现象
    • 7.2 解决方案:

一、asm.jar包冲突

1.1 问题现象

nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class

1.2 问题定位:

org.springframework.asm-3.0.6.RELEASE.jar 这个jar已在spring中包含,而且这个版本也不一致

1.3 解决方案:

把org.springframework.asm-3.0.6.RELEASE.jar 在项目中删除

二、 Old 1.x ‘singleton’ attribute in use

2.1 问题现象

Configuration problem: Old 1.x ‘singleton’ attribute in use - upgrade to ‘scope’ declaration

注:可以去下载xfire-spring-1.2.6的源码或者反编译,问题主要是修改xml配置文档,无需重新编译的。

2.2 问题定位

原因:spring-4.*不支持singleton=false或者singleton=true写法了。

2.3 解决方案:

  • 1.找到xfire-all-1.2.6.jar这个jar包
  • 2.用压缩工具打开,找到org/codehaus/xfire/spring/xfire.xml文件
  • 3.编辑xfire.xml文件,将singleton=“true” 修改为 scope=“singleton”
  • 4.把修改后的xfire-all-1.2.6.jar这个jar包放到lib文件夹中
  • 5.重启项目

注:编辑xfire-all-1.2.6.jar,要先复制到桌面上,在用压缩工具打开,进行编辑,在项目中无法编辑的

三、Unrecognized xbean element mapping

问题3:
org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean element mapping: beans in namespace http://xfire.codehaus.org/config/1.0

3.1 问题定位

Unrecognized xbean element mapping: beans in namespace http://xfire.codehaus.org/config/1.0<

3.2 解决方案:

修改services.xml文件.
原文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0"><!-- 1. 暴露的服务名 2. 自定义命名空间 3. 接口路径 4. 接口实现类路径 --><name>HelloService</name><namespace>CustomNamespaces</namespace><serviceClass>com.gblfy.xfire.service.IHelloService</serviceClass><implementationClass>com.gblfy.xfire.service.impl.HelloServiceImpl</implementationClass></service></beans>

修改后文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans><service xmlns="http://xfire.codehaus.org/config/1.0"><!-- 1. 暴露的服务名 2. 自定义命名空间 3. 接口路径 4. 接口实现类路径 --><name>HelloService</name><namespace>CustomNamespaces</namespace><serviceClass>com.gblfy.xfire.service.IHelloService</serviceClass><implementationClass>com.gblfy.xfire.service.impl.HelloServiceImpl</implementationClass></service>
</beans> 

四、services.xml it does not exist

4.1 问题现象

java.io.FileNotFoundException: class path resource [META-INF/xfire/services.xml] cannot be opened because it does not exist

4.2 解决方案:

  • 1.META-INF目录下面新建一个xfire文件夹
  • 2.把services.xml文件放到这个文件夹里
  • 3.再将整个META-INF拷贝到WEB-INF中
  • 4.clean一下工程
  • 5.重新加载后启动服务就可以了

五、指定class默认缺省

5.1 问题现象:

cannot convert value of type ‘org.codehaus.xfire.spring.editors.ServiceFactoryEditor’ to …

5.2 问题定位

spring-4.*的customEditors获取类型直接指定为Class,而配置默认还是缺省的

5.3 解决方案:

  • 1.找到xfire-all-1.2.6.jar这个jar包
  • 2.用压缩工具打开,找到org/codehaus/xfire/spring/customEditors.xml 文件
  • 3.编辑customEditors.xml文件
  • 4.把修改后的xfire-all-1.2.6.jar这个jar包放到lib文件夹中
  • 5.重启项目

详细编辑customEditors.xml文件:
把map中间的部分替换为下面即可。

<entry key="org.codehaus.xfire.service.ServiceFactory" value="org.codehaus.xfire.spring.editors.ServiceFactoryEditor"></entry>

源文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean id="xfire.customEditorConfigurer"class="org.springframework.beans.factory.config.CustomEditorConfigurer"><property name="customEditors"><map><entry key="org.codehaus.xfire.service.ServiceFactory"><bean class="org.codehaus.xfire.spring.editors.ServiceFactoryEditor"><property name="transportManager" ref="xfire.transportManager" /></bean></entry></map></property></bean></beans>

修改后:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean id="xfire.customEditorConfigurer"class="org.springframework.beans.factory.config.CustomEditorConfigurer"><property name="customEditors"><map><entry key="org.codehaus.xfire.service.ServiceFactory" value="org.codehaus.xfire.spring.editors.ServiceFactoryEditor"></entry></map></property></bean></beans>

注:编辑xfire-all-1.2.6.jar,要先复制到桌面上,在用压缩工具打开,进行编辑,在项目中无法编辑的

六 、解析依赖缺少

6.1 问题现象

nested exception is java.lang.NoClassDefFoundError: org/jdom/Content

6.2 问题定位:

缺少jdom的jar包

6.3 解决方案:

  • 1.下载jdom-1.0.jar
  • 2.复制到项目中的lib包下面
  • 3.重启项目

jdom-1.0.jar下载链接:

链接https://pan.baidu.com/s/1dpuCtD_Kng1rTaiF3dlM6g
提取码bqfz

七、发布服务失败

7.1 问题现象

输入网址:http://localhost:8081/XFireTest/services/HelloService?wsdl
浏览器会显示你所绑定的类或接口名称,如:
Available Services:
MathService [wsdl]
DelService [wsdl]
Generated by XFire ( http://xfire.codehaus.org )

7.2 解决方案:

  • 1.重启服务
  • 2.换个浏览器试试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt中十进制转换为十六进制和二进制字符串,以及二进制字符串转十进制,十六进制字符串

概述 直接上代码&#xff0c;记录一下&#xff0c;方便日后使用&#xff1a; 示例一 将十进制转换为二进制和十六进制字符串&#xff1b; int num 23; QString str QString::number(num,16);//转换为十六进制 str QString::number(num,2);//转换为二进制示例二 将二进制…

如何使用「番茄法」高效的写算法题?

戳蓝字“CSDN云计算”关注我们哦&#xff01; 作者&#xff1a;侯振宇转自&#xff1a;五分钟学算法01 目的 持续做算法题的目的仍然是自身能力提升。可以继续细化成三点:保持思维敏捷。非常重要&#xff0c;状态好才能保持对编程的热情。对基础的数据结构、查找和排序保持熟练…

双因子认证(Two-factor authentication)

一、简介 简言之&#xff0c;双因素身份验证&#xff08;也称为“两步验证”&#xff09;是指身份验证涉及两个阶段——通常是除了常规密码&#xff09;之外的某种一次性密码&#xff08;OTP&#xff1a;One-Time Password&#xff09;。网上银行已经使用这种方法很长一段时间了…

Spring中,使用工具类无法自动注入service

这个问题我其实遇到很久了&#xff0c;目前解决方案是手动注入service&#xff0c;并且把工具类也手动注入。 场景&#xff1a; 在spring中&#xff0c;我们经常会定义工具类来做一些奇怪的事情&#xff0c;我当前是通过定时任务quarz调度工具类&#xff0c;工具类再调servic…

sizeof与strlen使用中的问题

概述 直接上代码&#xff0c;使用中经常会涉及到sizeof与strlen计算的问题&#xff0c;下面看例子&#xff1a; char *pstr "hello"; char pstr[] "hellonini"; char pstr[6] "hello";上述求sizeof(pstr)的值&#xff0c;分别为&#xff1a…

从人工智能到云,英特尔开源技术推动软件栈创新

戳蓝字“CSDN云计算”关注我们哦&#xff01;2019年英特尔开源技术峰会&#xff08;OSTS&#xff09; 【CSDN记者现场报道】5月14-16日&#xff0c;英特尔主办一年一度的开源技术峰会&#xff08;OSTS&#xff09;。该峰会源自2004年的一次内部会议&#xff0c;从最初只有几十个…

Axis2搭建WebService服务

使用Axis2搭建WebService服务 文章目录一、服务端部署1.1 在web.xml配置文件中添加映射路径&#xff1a;2. 创建目录及文件3. 新建服务接口4. 新建接口实现类5. 发布服务6. 浏览器测试二、客户端部署2.1 Axis2客户端通用工具类封装(企业版本)2.2 单元测试(命名空间默认)&#x…

c++实现引用计数

概述 当有指针指向同一块内存空间时&#xff0c;计数器加1&#xff0c;没增加一个指向该内存空间的指针&#xff0c;计数器加1&#xff0c;同理&#xff0c;当原本指向该内存空间的指针指向另一块内存&#xff0c;计数器减1&#xff0c;被指向的另一个内存的计数器加1。下面是…

焦虑的 BAT、不安的编程语言,揭秘程序员技术圈生存现状!

戳蓝字“CSDN云计算”关注我们哦&#xff01;【CSDN 编者按】在迭代不休的技术圈中&#xff0c;仅在过去的一个月期间&#xff0c;我们见证了有史以来第一张黑洞照片的诞生&#xff1b;经历了为让人义愤填膺的 996&#xff1b;思考了作为程序员的年龄之槛&#xff1b;膜拜了技术…

axis2手动设置命名空间targetNamespace

修改services.xml&#xff1a; name &#xff1a;你暴露的接口服务名 targetNamespace 命名空间 <service name"ws" targetNamespace"url" >,添加targetNamespace属性&#xff0c;然后添加标签&#xff1a; <schema schemaNamespace"url&…

5G精华问答 | 除了速度,5G还能带来什么?

从2016年以来&#xff0c;5G热度逐步攀升。作为下一代移动通信网络&#xff0c;如果用一个关键词来形容5G&#xff0c;那就是“快”。5G不仅会极大地改变人们现有的生活和工作方式&#xff0c;提升通信效率&#xff0c;还可以加大很多前沿技术和产品落地的可能性。今天&#xf…

Spring获取JavaBean的xml形式和注解形式

Spring获取JavaBean的xml形式和注解形式 文章目录一、用xml文件方式管理JavaBean1. 创建一个xml配置文件2. 将一个Bean交由spring创建并管理3. 获取Spring上下文&#xff0c;获取bean二、用注解获取Javabean1. 创建一个class配置java文件2. 将一个bean交由Spring创建并管理3. 获…

C++中两个栈实现一个队列

引言 首先看这个标题的时候&#xff0c;需要联想到栈和队列的特点&#xff0c;栈是先进后出&#xff0c;队列是先进先出。假如三个元素1&#xff0c;2&#xff0c;3&#xff0c;将这三个元素依次入栈1后&#xff0c;再将栈1中元素依次出栈放入到栈2中&#xff0c;栈1中只留下最…

Kube-OVN:基于OVN的开源Kubernetes网络实践

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;今天&#xff0c;许多企业开始运行Kubernetes集群&#xff0c;并从中受益。但我们仍然…

IntelliJ IDEA中创建xml文件

1、file—setting&#xff0c;左上角输入template&#xff0c;2、在左侧栏找到File And Code Templates3、中间选中Files4、点击号&#xff0c;添加模板5、输入模板名字&#xff1a;Name:mybatis-cfg.xml &#xff08;name可以自定义&#xff09;6、后缀名extension&#xff1a…

C++冒泡排序

引言 冒泡排序作为排序中一个比较重要的方法&#xff0c;这里做一些简单的记录。 示例 本例中将一组数据2&#xff0c;4&#xff0c;3&#xff0c;8&#xff0c;5按照从小到大的顺序进行冒泡排序。首先说一下&#xff0c;冒泡排序是怎么排序的&#xff1a;将数组中相邻的两个…

Spring概念理解

什么是IOC&#xff1f; 控制反转&#xff0c;依赖注入 1、控制什么&#xff1f; 控制对象的创建及销毁(生命周期) 2、反转什么&#xff1f; 讲对象的控制权交给IOC容器

阿里云技术专家入选Apache Member;百度Q1财报:营收241亿元;华为面向全球发布AI-Native数据库……...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周二第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

c++选择排序

引言 选择排序就是找出每趟中的最小值或者最大值与对应趟数位置上的数值进行交换&#xff0c;从而排序&#xff0c;具体像序列&#xff1a;2&#xff0c;5&#xff0c;4&#xff0c;3&#xff0c;8若按照从小到大的顺序选择排序&#xff0c;总共5个元素&#xff0c;需要进行5-…

Java高级特性——反射

定义 JAVA反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意方法和属性&#xff1b;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 1. 反射机…