您的位置:首页 > 编程语言 > Java开发

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

2016-10-11 14:03 323 查看
由于公司最近推行将生产环境的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连接报警报内存不够风险

解决步骤一:增加内存,结果没有启动成功

解决步骤二:也就是第一个原因,百度一搜,说是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就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: