You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot启动时提示Unable to find a model that matches key问题求助

Spring Boot集成Swagger/OpenAPI后找不到ErrorJson模型的解决建议

问题背景

添加OpenAPI后出现模型找不到的错误,此前运行正常,推测与OpenAPI集成相关。

报错日志

[ERROR] Unable to find a model that matches key ModelKey{qualifiedModelName=ModelName{namespace='com.myproject.repository.model', name='ErrorJson'}, viewDiscriminator=null, validationGroupDiscriminators=[], isResponse=true}

当前Swagger配置

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
        .host(hostname)
        .select()
        .apis(RequestHandlerSelectors.basePackage("com.myproject.repository"))
        .paths(PathSelectors.any())
        .build()
        .securitySchemes(Collections.singletonList(apiKey()))
        .securityContexts(Collections.singletonList(securityContext()));
}

排查与解决步骤

  • 确认com.myproject.repository.model.ErrorJson类的访问权限:必须是public修饰,且提供无参构造函数,同时字段要有对应的getter方法(Swagger需要通过反射解析模型结构)。
  • 检查扫描范围:当前配置仅扫描com.myproject.repository下的请求处理器,但OpenAPI的模型扫描可能需要明确覆盖model子包,或者确认Spring的组件扫描是否包含该包路径。
  • 显式声明模型:如果ErrorJson是异常响应返回的模型,可在Swagger配置中通过.additionalModels(typeResolver.resolve(ErrorJson.class))手动添加该模型,确保被Swagger识别。
  • 检查依赖兼容性:避免同时引入springfox-swagger和springdoc-openapi,两者可能存在冲突;确认所用Swagger/OpenAPI依赖版本与Spring Boot版本匹配。

内容的提问来源于stack exchange,提问作者Alexander Mladzhov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:55:22