前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用knife4j-openapi3-spring-boot-starter,打开doc.html页面报stackoverflow异常

使用knife4j-openapi3-spring-boot-starter,打开doc.html页面报stackoverflow异常

作者头像
johnhuster的分享
发布2023-10-16 19:58:05
5040
发布2023-10-16 19:58:05
举报
文章被收录于专栏:johnhusterjohnhuster

        knife4j是一款不错集swagger2以及openapi3的增强方案,具体可以查看官网:

        本文提及的这个问题在swagger2正常,但是迁移到openapi3上时却出现了stackoverflow异常,部分异常信息如下所示:

Caused by: java.lang.StackOverflowError: null at org.springframework.util.ObjectUtils.nullSafeHashCode(ObjectUtils.java:423) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.core.ResolvableType.calculateHashCode(ResolvableType.java:938) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.core.ResolvableType.(ResolvableType.java:148) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.core.ResolvableType.forType(ResolvableType.java:1436) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.core.ResolvableType.forType(ResolvableType.java:1405) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.core.ResolvableType.getGenerics(ResolvableType.java:720) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.core.ResolvableType.getGenerics(ResolvableType.java:724) ~[spring-core-5.3.23.jar:5.3.23] at org.springframework.core.ResolvableType.hasUnresolvableGenerics(ResolvableType.java:548) ~[spring-core-5.3.23.jar:5.3.23] at org.springdoc.core.ReturnTypeParser.resolveType(ReturnTypeParser.java:87) ~[springdoc-openapi-common-1.6.15.jar:1.6.15] at org.springdoc.core.ReturnTypeParser.resolveType(ReturnTypeParser.java:93) ~[springdoc-openapi-common-1.6.15.jar:1.6.15] at org.springdoc.core.ReturnTypeParser.resolveType(ReturnTypeParser.java:93) ~[springdoc-openapi-common-1.6.15.jar:1.6.1

从上面标红部分可以断定是泛型类的类型确定不了,场景如下所示:

代码语言:javascript
复制
// 出问题的类
public class SysOrgs<T extends SysOrgs<T>> {

    private String name;
    
    private List<T> children;
}

// controller某接口

@GetMapping
public List<SysOrgs> getOrgs(....){
}

问题就出在上面的controller使用了一个没指定泛型类型的SysOrgs基础类,导致openapi3在生成对应接口文档时无法解析的情况而导致了死循环,最终报了stackoverflow异常

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档