场景描述
springboot 集成 springfox的 swagger 3 功能。
- 环境
IDE: 2021.3
spring boot: 2.1.7
springfox: 3.0.0
问题
- 启动项目时,异常:The following method did not exist: org.springframework.plugin.core.PluginRegistry.getPluginFor……。
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-02-25 10:13:08.770 ERROR 15336 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
springfox.documentation.schema.plugins.SchemaPluginsManager.viewProvider(SchemaPluginsManager.java:95)
The following method did not exist:
org.springframework.plugin.core.PluginRegistry.getPluginFor(Ljava/lang/Object;)Ljava/util/Optional;
The method's class, org.springframework.plugin.core.PluginRegistry, is available from the following locations:
jar:file:/D:/other/repository1/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar!/org/springframework/plugin/core/PluginRegistry.class
It was loaded from the following location:
file:/D:/other/repository1/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of org.springframework.plugin.core.PluginRegistry
Process finished with exit code 1
解决
spring-plugin-core/1.2.0.RELEASE 的版本和 springfox 3.X 对应问题。
在springfox 提供的demo中,使用的 springboot 版本是 2.3.1。
springboot 版本改到2.3.1及以上就可以(提示:版本太高也不支持,eg: 3.6.3版本会出其他错误)。
资料
springfox github:https://github.com/springfox/springfox
springfox demo: https://github.com/springfox/springfox-demos/blob/master/boot-swagger