您的位置:首页 > 运维架构 > Tomcat

类之间相互调用引起的tomcat服务器无法启动原因分析

2013-01-29 10:03 393 查看
Tomcat无法启动:

日志报错:Caused by: java.lang.StackOverflowError

经查发现是因为有两个类存在相互调用的情况,其中一个类在spring中做了配置,而且这两个类的调用都是现在另外的类中将其作为该类的实例化属性来调用。

例如:

public class XeditServiceDao extends BaseDao
{
   private XeditXmlManager xxm = new XeditXmlManager();
}

public class XeditXmlManager {
   private XeditServiceDao xsDao = new XeditServiceDao();
}


XeditServiceDao 类在spring中做了配置,但是当我们启动tomcat服务器时,就会加载XeditServiceDao 类的相关属性XeditXmlManager,

而XeditXmlManager 中又以XeditServiceDao 为属性,造成了死循环,因此造成堆溢出错误java.lang.StackOverflowError 。

同理,如果其他web服务器出现此类情况,也不妨查一下此类原因。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐