spring+dubbo+java8 Component-scan异常记录

在将仓库管理系统从JDK7升级到JDK8的过程中遇到问题,主要涉及Spring框架版本不兼容及内存不足的情况。通过调整Spring版本和优化内存配置最终解决了启动失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于公司最近推行将生产环境的jdk切换成最高版本,我负责的仓库管理系统在两台机子上无法进行升级,前两天在测试环境中进行了jdk7-jdk8的转换,出现了一些问题,这里特此记录。
出现的问题一开始以为是代码的问题,其实不是,看框架的启动日志是正常的,看tomcat的启动日志却发现tomcat没有正常启动。原因有二

1.  Caused by: java.lang.IllegalStateException: Context namespace element 'component-scan' and its parser class [org.springframework.context.annotation.ComponentScanBeanDefinitionParser] are only available on JDK 1.5 and higher
at org.springframework.context.config.ContextNamespaceHandler$1.parse(ContextNamespaceHandler.java:65)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:69)

这里写图片描述
2.数据访问层框架报,这里主要是测试机上部署了太多服务,4G内存不够用,JDBC连接报警报内存不够风险


  1. 解决步骤一:增加内存,结果没有启动成功
    解决步骤二:也就是第一个原因,百度一搜,说是spring的版本比较低,无法在Java8的环境中编译,并且spring的低版本也不支持Java8.由于是使用dubbo进行RPC调用,依赖spring的框架,并且dubbo依赖的spring版本没有被完全排除掉,idea中引用的jar包没有变化。
    网上的解决方法如下:
    这里写图片描述

排除两个,一个是spring的低版本(这指的是2.5的貌似),另一个是netty。
原来的做法是:
Dubbo只排除了spring,另外引用的spring框架没有被编译到,spring版本是4.0.4的,dubbo版本是2.5.3的。
后来用了上图的方式,同时将spring的版本提升到4.2.7就可以了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值