负责的一个SSH老项目,因为想集成flowable工作流,但是看了flowable的说明发现必须采用jdk 1.8运行。可是我的项目恰好是在jdk 1.7上运行是没问题的,所以就想着升级成1.8,结果发现升级之后项目无法运行,并报如下错误:AnnotationAwareAspectJAutoProxyCreator is only available on Java 1.5 and higher
这里的问题是Spring 2.5中org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser自动检测,jdk版本检测的时候需要jre1.5以上版本,但是JdkVersion只检查到了1.7,jre1.8 时不匹配任何jdk。
以上问题,网上好多人的办法是将JDK1.8换回JDK1.7,什么?那我干嘛还要升级呢?所以这种方法行不通了。
既然JDK升级后Spring有问题,那就顺便一并升级一下Spring吧,升级Spring的时候,没太敢一下子升级到最新,可能会出问题,这个我没有试不确定,所以我选择只升级一个大版本,从2.5升级到Spring 3的最后版本Spring3.2.9。
- 删除项目中原来Spring2.5.jar包
- 下载Spring 3.2.9相关jar包(这里由于项目本身不是maven管理的,所以从Spring官网直接下载相关jar包添加进去)
- 我添加和删除的jar包如下:
- aopalliance-1.0.jar不是从Spring官网上下载的,这个jar包可从MavenRepository搜索到并下载添加
- 替换Spring所有的applicationContext-*.xml配置文件中相关xsd的版本为3.2,如果xml文件太多可以批量替换,eclipse中使用Ctrl+H --> File Search,搜索到之后,选中所有需要替换的xml文件,鼠标右键 --> Replace Selected…,将-2.5.xsd替换为-3.2.xsd
升级后,JDK直接切换为1.8,tomcat 8.5运行项目没有任何问题,增删改查也正常。希望这次经验能帮到同样有此类需求的人。
</div></div>
<div style="clear:both;"></div>
<div style="clear:both;"></div>
</div>