最近爆了個spring的漏洞,而後公司總體要求升級spring到最新版本,而後搞四了一大批猿人。java
spring-4.*的最新版本是4.3.16(穩定版)spring
xfire-spring-1.2.6(最新版-已經中止維護了-後續建議不要再使用了)spa
進入正題(主要修改的東西有二步):prototype
注:能夠去下載xfire-spring-1.2.6的源碼或者反編譯,問題主要是修改xml配置文檔,無需從新編譯的。code
一、異常:Configuration problem: Old 1.x 'singleton' attribute in use - upgrade to 'scopexml
緣由:spring-4.*不支持singleton=false寫法了。blog
處理:找到下面配置文件文檔
org/codehaus/xfire/spring/xfire.xml源碼
org/codehaus/xfire/spring/xfireXmlBeans.xmlit
singleton="false" 修改成 scope="prototype"
二、異常:cannot convert value of type 'org.codehaus.xfire.spring.editors.ServiceFactoryEditor' to .....
緣由:spring-4.*的customEditors獲取類型直接指定爲Class,而配置默認仍是缺省的。
處理:找到下面配置文件
org/codehaus/xfire/spring/customEditors.xml
<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> <!-- <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>