问题场景复现:
2021-04-21 09:21:29.302 [http-nio-8080-exec-3] ERROR o.jeecg.common.exception.JeecgBootExceptionHandler:64 - Handler dispatch failed; nested exception is java.lang.StackOverflowError
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.StackOverflowError
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
Caused by: java.lang.StackOverflowError: null
at java.base/java.io.ByteArrayOutputStream.<init>(ByteArrayOutputStream.java:64)
at org.bouncycastle.asn1.ASN1Object.getEncoded(Unknown Source)
at org.bouncycastle.asn1.pkcs.RSAPublicKey.toASN1Primitive(Unknown Source)
at org.bouncycastle.asn1.ASN1OutputStream.writeObject(Unknown Source)
at org.bouncycastle.asn1.ASN1Object.encodeTo(Unknown Source)
at org.bouncycastle.asn1.ASN1Object.getEncoded(Unknown Source)
问题具体原因:
JRebel启动时需要大量的内存,JVM对永久区内存设置太小,堆内存过小所致
解决方案:
(1)不推荐:使用run或debug运行项目;
(2):切换使用Jrebel+Xrebel模式运行(前提:需更新ide插件Jrebel最新即可);
(3)配置tomcat内存大小
例:-server -XX:PermSize=512M -XX:MaxPermSize=1024m ;


在IDEA中使用JRebel启动项目时出现内存溢出错误,导致Spring框架处理请求失败,StackOverflowError异常。问题源于JRebel需要大量内存而JVM设置的堆内存不足。解决方案包括调整JVM参数增大 PermSize 和 MaxPermSize,或者尝试使用Jrebel+Xrebel模式运行项目。
1584

被折叠的 条评论
为什么被折叠?



