访问v3/api-docs时出现java.lang.NoSuchMethodError问题求助
解决OpenAPI相关依赖版本冲突导致的NoSuchMethodError问题
这个错误的核心原因是依赖版本不兼容:你当前使用的swagger-core 2.1.12与OpenAPI 1.6.12版本不匹配,io.swagger.v3.oas.models.media.Schema类的addProperty()方法在高版本的openapi-core中被移除或修改了方法签名,类路径里加载的是不兼容的Schema类,导致找不到指定方法。
具体解决步骤:
统一核心依赖版本
swagger-core 2.1.12对应的兼容openapi-core版本是1.0.62,而非你当前使用的1.6.12。openapi-core 1.6.x属于更高版本,和swagger-core 2.1.12的API不兼容。你需要将openapi-core降级到匹配的版本,或者升级swagger-core到2.2.x+(该版本开始依赖openapi-core 2.x,API签名已调整)。排查并清理冲突依赖
用依赖分析工具检查项目依赖树,确保只有一个版本的openapi-core存在:- Maven项目执行命令:
mvn dependency:tree - Gradle项目执行命令:
./gradlew dependencies
找到所有冲突的openapi-core依赖,通过依赖排除机制移除不兼容版本,再手动引入匹配的版本。例如Maven配置示例:
<dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-core</artifactId> <version>2.1.12</version> <exclusions> <exclusion> <groupId>io.swagger.core.v3</groupId> <artifactId>openapi-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>openapi-core</artifactId> <version>1.0.62</version> </dependency>- Maven项目执行命令:
验证Swagger UI兼容性
swagger-ui 4.1.3支持OpenAPI v3规范,只要后端的v3/api-docs接口能正常生成文档,解决核心依赖冲突后,UI访问即可恢复正常。
内容的提问来源于stack exchange,提问作者dkayastha
相关产品推荐
相关产品推荐

