1.在堆栈溢出的在线发现中找到异常的日志,然后将其扔到接口方法的最外面的捕获中。
2.查看日志可以看到以下错误
1.日志中有许多重复错误。代码中可能有死周期或无限递归。但是,由于这是一个错误 - 级别的错误,因此将其扔到了最外层的层。从在线日志中找到参数后,发现可以稳定地恢复前释放环境,因此可以发布异常。预发行和日志定位。最后,在红色框中找到代码行,如下图所示
2.进一步的调查发现,呼叫jsonutils.toSTR(项目)时发生异常。
1.首先,确定封装为jsonutils.toSTR使用的JSON转换工具是fastjson,当您传输JSON时,指定了serializerFeature.disableCircularReferenceDectect参数,如下图所示。
2.检查serializerFeature.disableCircularReferencencecec的串行选项以关闭参考检测。关闭参考检测后,它将不会在重复参考对象时被$ ref替换,但是当环状引用时,但是,当循环引用时,stackoverflowerror将是abnormal的。剩余的问题是确定周期参考的发生地点。目前,可能是周期参考可能发生在序列化项目中。
3.如果地图序列化,将报告堆栈溢出。
原始:https://juejin.cn/post/7097929153952874526