Context initialization failed 项目启动报错,一会成功一会失败!

背景描述:一个老项目了,三个月前开始得起好几次才能启动成功,最近严重了,有得时候一两个小时都起不起来,有得时候一下就起起来了,排查了两天没有找到问题所在
采用得ecplise(2011版),tomcat(7.0),jdk(1.7)spring(3.1)项目大小越来越大现在本地运行起来正常运行情况下堆大小在1.5G左右,服务器上大概在4个G左右
得先上下报错:
img

img

两天得排查过程:
1.看网上得说法说有spring容器实例对象的时候失败,考虑上下文容器加载失败,则查看最近写的代码,比对代码,编写测试类,加载上下文容器,加载成功
img
img

后考虑是不是项目没有编译成功,是不是编译空间不够,堆跟方法区得大小不够,去ecplise配置文件中增加堆大小为1个 G,方法区大小为256M,调整java虚拟机得堆和方法区大小

img
情况还是没有好转!
配上环境得贴图:

img

img

img

img

这个简单,看你的第一行报错就知道了

Bean already defined with the same name

创建的bean名字相同了,但一般人应该不会创建的bean名字相同,所以你的情况应该是这样的:配置文件中配置了映射文件目录,而你的entity同时也加了映射注解,导致启动运行项目的时候创建了两个相同的bean,去掉这个注解,就可以了
你可以参考一下这篇文章: https://blog.csdn.net/qq_36724582/article/details/108602797 https://blog.csdn.net/qq_36724582/article/details/108602797
希望对你有帮助

Context initialization failed 原因有很多,根据你提供的信息应从下图信息排查:
img
从异常信息来看,问题是spring管理bean时,出现了问题,可能是bean 名称冲突,也可能是在管理bean时候出现的其他问题;
因为没有具体环境,无法精准定位问题,从这个方向去排查,试试看是否有效
你可以进行全局搜索进行排查
有条件的可以debug进行排查

以上个人建议,希望有帮到你