m0_37772518
哆啦A梦陈
2019-01-10 16:40
采纳率: 18.2%
浏览 2.6k
已采纳

SpringBoot启动时序列化对象时报java.lang.StackOverflowError错

将项目改造成SpringBoot,使用了AOP切面日志,配置完之后启动项目,报java.lang.StackOverflowError错。

图片说明

下面是我的AOP配置:

图片说明

打过断点,定位到报错的地方是其中的:LogInterceptor.java

图片说明

new Gson().toJson(arguments[i])往底层走,在这一步报:

图片说明
图片说明
图片说明

百度了很多方法,但是没有找到有效的,求大佬指点迷津!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • m0_37772518
    哆啦A梦陈 2019-01-22 14:55
    已采纳

    大对象实例化。切点配置了“Server”,所以切点切自己了。

    点赞 评论
  • tavatimsa
    tavatimsa 2019-01-10 16:55

    你看看是不是你设置了多个AOP切面,但没设置顺序,有栈冲突。
    图片说明
    像这样规定下切面的顺序@Order(1)
    看你错误是数据库问题。
    如果你的Mysql比较高版本6以上,就设置下
    driver-class-name: com.mysql.cj.jdbc.Driver

    点赞 评论
  • chengmeng_123
    孤海岛主 2019-01-10 17:56

    首先你确定一下你所使用的日志是哪一种,springboot默认使用的日志是logback内嵌在springboot中,如果要使用别的日志需要排除logback否则就会报错。

    点赞 评论
  • HXNLYW
    葫芦胡 2019-01-11 10:01

    你的JVM参数-Xss 是不是太小了,调大 -Xss 参数看看;

    点赞 评论

相关推荐