1.問題描述
如果A類里面使用了map遇西,且map的value是A類馅精,如圖 1-1所示,knife4j在解析json的時(shí)候會(huì)出現(xiàn)超出最大調(diào)用堆棧大小異常(Maximum call stack size exceeded)粱檀,估計(jì)是遞歸沒有邊界洲敢。
console報(bào)錯(cuò)日志
app.ed549958.js:2 RangeError: Maximum call stack size exceeded
at $.get [as currentInstance] (chunk-vendors.9ff0f717.js:2)
at $.findRefDefinition (app.ed549958.js:2)
at $.findRefDefinition (app.ed549958.js:2)
at $.findRefDefinition (app.ed549958.js:2)
at $.findRefDefinition (app.ed549958.js:2)
at $.findRefDefinition (app.ed549958.js:2)
at $.findRefDefinition (app.ed549958.js:2)
at $.findRefDefinition (app.ed549958.js:2)
at $.findRefDefinition (app.ed549958.js:2)
at $.findRefDefinition (app.ed549958.js:2)
2.解決方案
把map字段刪了之后就正常了。
3.導(dǎo)致問題的請(qǐng)求和配置數(shù)據(jù)茄蚯。
3-1.Knife4j和springfox-swagger版本號(hào):
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
3-2.springboot版本號(hào):
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starters</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
圖 1-1 實(shí)體類定義.png
圖 1-2 swagger-resources請(qǐng)求正常.png
圖 1-3 api-docs請(qǐng)求正常.png
圖 1-4 文檔請(qǐng)求異常.png