java - 将 spring boot 从 2.1.0 升级到 2.2.2.RELEASE ,现在启动时出现异常

标签 java spring-boot swagger swagger-2.0 spring-boot-actuator

我将SpringBoot版本2.1.0升级到2.2.2.RELEASE

java:openjdk11 Spring 启动:v2.2.0.RELEASE springCloud版本:Hoxton.RC1

错误:

应用程序无法启动

描述:

尝试调用不存在的方法。尝试从以下位置进行:

springfox.documentation.spring.web.plugins.DocumentationPluginsManager.createContextBuilder(DocumentationPluginsManager.java:152)

以下方法不存在:

 org.springframework.plugin.core.PluginRegistry.getPluginFor(Ljava/lang> /Object;Lorg/springframework/plugin/core/Plugin;)Lorg/springframework/plugin/core/Plugin;

该方法的类 org.springframework.plugin.core.PluginRegistry 可从以下位置获取:

jar:file:/home/cuelogic.local/kanisha.modi/.gradle/caches/modules-2/files-2.1/org.springframework.plugin/spring-plugin-core/2.0.0.RELEASE/95fc8c13037630f4aba9c51141f535becec00fe6/spring-plugin-core-2.0.0.RELEASE.jar!/org/springframework/plugin/core/PluginRegistry.class

它是从以下位置加载的:

file:/home/cuelogic.local/kanisha.modi/.gradle/caches/modules-2/files-2.1/org.springframework.plugin/spring-plugin-core/2.0.0.RELEASE/95fc8c13037630f4aba9c51141f535becec00fe6/spring-plugin-core-2.0.0.RELEASE.jar

行动:

Correct the classpath of your application so that it contains a single, compatible version of org.springframework.plugin.core.PluginRegistry

由以下原因引起的错误

 Caused by: java.lang.NoSuchMethodError:
 org.springframework.plugin.core.PluginRegistry.getPluginFor(Ljava/lang/Object;Lorg/springframework/plugin/core/Plugin;)Lorg/springframework/plugin/core/Plugin;
    at
 springfox.documentation.spring.web.plugins.DocumentationPluginsManager.createContextBuilder(DocumentationPluginsManager.java:152)
    at
 springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.defaultContextBuilder(DocumentationPluginsBootstrapper.java:106)
    at
 springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.buildContext(DocumentationPluginsBootstrapper.java:91)
    at
 springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.start(DocumentationPluginsBootstrapper.java:154)
    at
 org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182)
    ... 101 common frames omitted

build.gradle

dependencies {
    
    compile "org.springframework.cloud:spring-cloud-starter-netflix-eureka-client"
    compile "io.opentracing.contrib:opentracing-spring-jaeger-cloud-starter:1.0.1"
    compile "org.springframework.boot:spring-boot-starter"
    compile "org.springframework.boot:spring-boot-starter-amqp"
    compile "org.springframework.boot:spring-boot-starter-web"
    compile "org.springframework.boot:spring-boot-starter-actuator"
    compile "org.springframework.boot:spring-boot-starter-tomcat"
    compile "org.springframework.boot:spring-boot-starter-security"
    compile "org.springframework.boot:spring-boot-starter-logging"
    compile "org.springframework.boot:spring-boot-starter-data-rest"
    compile "org.springframework.boot:spring-boot-starter-data-mongodb"
    compile "org.springframework.boot:spring-boot-starter-aop"
    compile "org.springframework:springloaded:1.2.8.RELEASE"
    compile "org.springframework.security:spring-security-web"
    compile "org.springframework.security:spring-security-config"
    compile "org.apache.commons:commons-collections4:4.1"
    compile "com.fasterxml.jackson.core:jackson-databind:2.9.10"
    compile "com.google.guava:guava:${guava_version}"
    compile(group: 'io.springfox', name: 'springfox-swagger2', version: '2.7.0') {
        exclude(module: 'guava')
    }
    compile "javax.cache:cache-api:1.1.0"
    compile "org.springframework.boot:spring-boot-starter-websocket"
    compile "org.springframework.boot:spring-boot-configuration-processor"
    compile "org.springframework.boot:spring-boot-starter-cache"
    compile "com.hazelcast:hazelcast-spring:3.12"
    compile "com.hazelcast:hazelcast-eureka-one:1.0.2"
    compile "org.reflections:reflections:0.9.11"
    compile group: 'io.opentracing.contrib', name: 'opentracing-spring-cloud-mongo-starter', version: '0.3.12'


}    

如何解决这个问题?请帮助我,我将不胜感激。 我想将我的应用程序升级到 springboot v2.2.2 。因此需要该版本的解决方案。

最佳答案

更新您的 springfox-swagger 版本。我有 springfox 2.9.2 和 boot 2.2.2 一起运行

编辑 98.01.2020:

不知何故,你的类路径中包含了 spring-plugin-core-2.2.0.RELEASE 。 SpringFox 需要 1.2.0 版本,Spring Boot 2.2.2 本身不会拉入此版本。您可以运行 gradle dependency --configuration runtimeClasspath 并检查在该版本中拉入哪个依赖项吗?

关于java - 将 spring boot 从 2.1.0 升级到 2.2.2.RELEASE ,现在启动时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59647727/

相关文章:

java - Spring 启动和 ddl-auto 问题

java - 如何使用 Spring Boot 在 jetty 嵌入式服务器中以编程方式启用和公开 jmx beans?

mocking - OpenAPI 3.0 模拟生成器

node.js - 为现有 NodeJS 服务器生成 Swagger 文档

scala - 如何告诉 swagger 参数 dataType 是一个对象数组?

java - 比较通用 T 对象

java - Spring从磁盘上的外部文件夹中获取文件和图像,在webapps之外?

Java 8 链式方法引用?

spring-boot - Keycloak 与 Spring Boot 集成

git - 从配置服务器获取application.properties时出现Redis连接失败错误