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

奇葩问题001:Idea无法正常编译(代码没有问题)【原因已找到】

2016-12-13 21:26 537 查看
最近遇到了一个奇葩的问题,在项目开发中,一些同事的idea突然就编译不过去了,点击【RUN】会报出下面的错误:

org.springframework.beans.factory.support.DefaultListableBeanFactory
-->Bean creation exception on FactoryBean type check: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sysTestMapper' defined in URL
[jar:file:/E:/NewERP1/jiankunking/jiankunking-web/target/jiankunking-web-1.0-SNAPSHOT/WEB-INFb/jiankunking-system-1.0-SNAPSHOT.jar!/org/jiankunking/system/member/sysTestMapper.class]:
Initialization of bean failed; nested exception is java.lang.StackOverflowError


点击【debug】运行会提示下面的错误:

org.springframework.beans.factory.support.DefaultListableBeanFactory
-->Bean creation exception on FactoryBean type check: org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'sysTestMapper' defined in URL
[jar:file:/E:/NewERP1/jiankunking/jiankunking-web/target/jiankunking-web-1.0-SNAPSHOT/WEB-INFb/jiankunking-system-1.0-SNAPSHOT.jar!/org/jiankunking/system/member/sysTestMapper.class]:
Unsatisfied dependency expressed through bean property 'sqlSessionFactory': :
Error creating bean with name 'sqlSessionFactory' defined in URL
[jar:file:/E:/NewERP1/jiankunking/jiankunking-web/target/jiankunking-web-1.0-SNAPSHOT/WEB-INFb/jiankunking-web-1.0-SNAPSHOT.jar!/spring/spring-mybatis.xml]:
Invocation of init method failed;
nested exception is java.lang.NoClassDefFoundError:
Could not initialize class org.apache.xpath.compiler.FunctionTable; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in URL
[jar:file:/E:/NewERP1/jiankunking/jiankunking-web/target/jiankunking-web-1.0-SNAPSHOT/WEB-INFb/jiankunking-web-1.0-SNAPSHOT.jar!/spring/spring-mybatis.xml]:
Invocation of init method failed;
nested exception is java.lang.NoClassDefFoundError:
Could not initialize class org.apache.xpath.compiler.FunctionTable


找过各种各种方式来处理这个问题,最后发现在debug模式下,在:

org.springframework.beans.factory.support.DefaultListableBeanFactory

spring的DefaultListableBeanFactory类中每个throw 异常的地方打上断点,在debug模式下就可以跑起来了。

无语中。。。。竟然可以这样解决问题。

过了一段时间,这种方式也不行了,又是会重启idea问题就消失了。

但问题还是不时的出现,代码都是一样的,而且代码打包后,在tomcat里面是可以正常运行的,而问题只有几个同事的开发环境中会出现,所以,应该是环境问题,卸载Tomcat、JDK,重装之后问题消失。

—————————————————————————问题再次出现,原因查找—————————————————————————

今天同事又遇到这个问题了,在cmd窗口下:

java -version


看到的jdk版本是1.8

javac -version


看到的版本是1.7

需要注意编译jdk版本和运行时的jdk版本,运行时jdk版本不能小于编译时候的jdk版本。

在idea中用的版本是jdk1.7.0_69



从360中可以看到同事的环境中安装了很多jdk



我从360中卸载JDK 8还有JDK 1.7.0_69,然后重新设置一下系统环境中的环境变量,在idea中重新选一下jdk即可

—————————————————————————问题解决—————————————————————————

作者:jiankunking 出处:http://blog.csdn.net/jiankunking
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐