- 添加 Jackson 序列化配置 - 禁用空 bean 序列化失败 - 配置不序列化 null 值 - 优化日期序列化格式 修复问题: - 解决 Handler dispatch failed 错误 - 避免循环引用导致的栈溢出
40 lines
915 B
Markdown
40 lines
915 B
Markdown
# StackOverflowError 修复方案
|
|
|
|
## 问题描述
|
|
用户在申请充值或提现时遇到错误:
|
|
```
|
|
Handler dispatch failed; nested exception is java.lang.StackOverflowError
|
|
```
|
|
|
|
## 根本原因
|
|
可能的原因:
|
|
1. Jackson 序列化时的循环引用
|
|
2. Lombok `@Data` 注解导致的 `toString()` 无限递归
|
|
3. 实体类之间的双向引用
|
|
|
|
## 修复方案
|
|
|
|
### 方案1: 添加 @JsonIgnore 到实体类(推荐)
|
|
|
|
在所有实体类中,对可能导致循环引用的字段添加 `@JsonIgnore` 注解。
|
|
|
|
### 方案2: 禁用 toString() 方法
|
|
|
|
在实体类中使用 `@Getter` 和 `@Setter` 替代 `@Data`,避免 `toString()` 方法的自动生成。
|
|
|
|
### 方案3: 配置 Jackson 不序列化 null 值
|
|
|
|
在 `application.yml` 中添加配置。
|
|
|
|
## 执行步骤
|
|
|
|
1. 修改实体类
|
|
2. 重新编译项目
|
|
3. 重启服务
|
|
4. 测试验证
|
|
|
|
---
|
|
|
|
**修复时间**: 预计 10 分钟
|
|
**优先级**: 🔴 高
|