最近爆了个spring的漏洞,然后公司整体要求升级spring到最新版本,然后搞四了一大批猿人。
spring-4.*的最新版本是4.3.16(稳定版)
xfire-spring-1.2.6(最新版-已经停止维护了-后续建议不要再使用了)
进入正题(主要修改的东西有三步):
注:可以去下载xfire-spring-1.2.6的源码或者反编译,问题主要是修改xml配置文档,无需重新编译的。
1、异常:Configuration problem: Old 1.x 'singleton' attribute in use - upgrade to 'scope
原因:spring-4.*不支持singleton=false写法了。
处理:找到下面配置文件
org/codehaus/xfire/spring/xfire.xml
org/codehaus/xfire/spring/xfireXmlBeans.xml
singleton="false" 修改为 scope="prototype"
2、异常: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>