javascript
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><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中間的部分替換為下面即可。
源文件:
<?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下載鏈接:
| 提取碼 | 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.換個瀏覽器試試
總結
以上是生活随笔為你收集整理的Spring4.x集成xfire1.26 问题汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看linux系统版本信息(Oracle
- 下一篇: Spring Boot下使用JPA报错: