Weblogic报java.lang.StackOverflowError

<[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1333685110468> <BEA-101017> <[weblogic.servlet.internal.WebAppServletContext@13d1e7e6 - appName: 'adminserver', name: 'admin', context-path: '/admin'] Root cause of ServletException.

java.lang.StackOverflowError


遇到这样的情况很大可能是程序中不断地分配对象超出了JVM的stack size。在程序有递归的情况中更常见。


解决办法:

1.修改程序逻辑(在此不对做说明)

2.增加JVM虚拟机的参数(给每个线程指定stack的更大的size)

-Xss2M


O/S

32-bit Default

64-bit Default

Windows

64 kB

320 kB

Linux

128 kB

1 mB


自己也可以写个程序来重现stackovererror

请参照:http://stackoverflow.com/questions/3700459/how-to-increase-to-java-stack-size


其实我自己不太能在现有应用程序中完全相同的模拟,不知道这是否和JVM垃圾回收中的对象的归类有关? 

具体的情况是,应用中有2叉树,遍历的时候变量会不断的压入stack中,等到读取或遍历树的深度很长的时候,有时候就会报出stackovererror。但是多点几个树出来之后就很难再出现stackovererror了。但是我的问题是必须要模拟出来问题。证明修改增加参数后可行。

所以如果你对这方面有研究又不吝留个言指点一下,真的非常感谢。

希望对这方面有研究的大大们指点!!!!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值