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

来源:互联网 发布:网站制作软件培训 编辑:程序博客网 时间:2024/06/11 13:55

由于公司最近推行将生产环境的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 higherat 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 0
原创粉丝点击