栈溢出(StackOverflowError)

本文详细记录了一次在将系统从单服务器环境切换到多服务器环境后遇到的StackOverflowError异常过程。在排查过程中,排除了代码层面的原因,最终通过调整JVM参数中的栈大小设置解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:系统在测试环境中单服务器,运行了两天。之后,切换成了多服务器(2台),运行了小段时间后,报错:

各种bean 创建失败,最后报错StackOverflowError

nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.iboxpay.opm.server.ILigentPosRomService': Cannot resolve reference to bean 'ligentPosRomService' while setting bean property 'ref'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'ligentPosRomService': Unsatisfied dependency expressed through field 'ligentPosRomDao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ligentPosRomDaoImpl': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'opmEntityManagerFactory': Post-processing of FactoryBean's singleton object failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.iboxpay.opm.server.ILigentScanService': Cannot resolve reference to bean 'ligentScanService' while setting bean property 'ref'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'ligentScanService': Unsatisfied dependency expressed through field 'ligentPosRomDao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ligentPosRomDao': Cannot create inner bean '(inner bean)#69fe410a' of type [org.springframework.data.repository.core.support.PropertiesBasedNamedQueries] while setting bean property 'namedQueries'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#69fe410a': Cannot create inner bean '(inner bean)#45d1386a' of type [org.springframework.beans.factory.config.PropertiesFactoryBean] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#45d1386a': Initialization of bean failed; nested exception is java.lang.StackOverflowError
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:313)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:129)

日志基本如上。

起初,怀疑是代码的问题,于是注释掉部分new 对象多的代码。还是报该错。

查找的的相关文章链接:

StackOverflowError的分析和理解

StackOverflowError异常处理

深入理解java.lang.StackOverflowError和java.lang.OutOfMemoryError错误

最后是通过运维去修改栈的大小,从256K更改为1M...

具体操作:待定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值