我正在使用 spring cloud 将模块化应用程序迁移到微服务应用程序中,当我完成将模块迁移到微服务并运行它时,出现了一个问题:
更正应用程序的类路径,使其包含 org.springframework.plugin.core.PluginRegistry 的单个兼容版本
这是错误:
试图调用不存在的方法。尝试是从以下位置进行的:
org.springframework.data.rest.core.support.UnwrappingRepositoryInvokerFactory.<init>(UnwrappingRepositoryInvokerFactory.java:57)
以下方法不存在:
org.springframework.plugin.core.PluginRegistry.of(Ljava/util/List;)Lorg/springframework/plugin/core/PluginRegistry;
该方法的类 org.springframework.plugin.core.PluginRegistry 可从以下位置获得:
jar:文件:/~/.m2/repository/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar!/org/springframework/plugin /核心/PluginRegistry.class
它是从以下位置加载的:
文件:/~/.m2/repository/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar
行动:
更正应用程序的类路径,使其包含 org.springframework.plugin.core.PluginRegistry 的单个兼容版本
这是我的 pom.xml :
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<模型版本>4.0.0</模型版本>
<父母>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<版本>2.3.0.RELEASE</版本>
<relativePath/> <!-- 从存储库查找父级 -->
</父母>
<groupId>org.sid</groupId>
<artifactId>SF-postpros</artifactId>
<版本>0.0.1-快照</版本>
<name>SF-postpros</name>
<description>Spring Boot 示例工程</description>
<属性>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR4</spring-cloud.version>
</属性>
<依赖关系>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<排除>
<排除>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</排除>
</排除>
</依赖>
<依赖关系>
<groupId>com.h2数据库</groupId>
<artifactId>h2</artifactId>
<范围>运行时</范围>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</依赖>
<依赖关系>
<groupId>javax.validation</groupId>
<artifactId>验证-api</artifactId>
<version>2.0.1.Final</version>
</依赖>
<依赖关系>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
</依赖>
<依赖关系>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</依赖>
<依赖关系>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-core</artifactId>
</依赖>
<依赖关系>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
<版本>1.2.0.RELEASE</版本>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</依赖>
<依赖关系>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</依赖>
<依赖关系>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<范围>测试</范围>
<排除>
<排除>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</排除>
</排除>
</依赖>
<依赖关系>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<范围>测试</范围>
</依赖>
<依赖关系>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<范围>测试</范围>
</依赖>
<依赖关系>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<范围>测试</范围>
</依赖>
<依赖关系>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</依赖>
<依赖关系>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</依赖>
<依赖关系>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>杰克逊数据绑定</artifactId>
</依赖>
<依赖关系>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>杰克逊核心</artifactId>
</依赖>
<依赖关系>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>杰克逊注释</artifactId>
</依赖>
<依赖关系>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<版本>2.9.2</版本>
</依赖>
<依赖关系>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<版本>2.9.2</版本>
</依赖>
<依赖关系>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<排除>
<排除>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</排除>
</排除>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</依赖>
<依赖关系>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<排除>
<排除>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</排除>
</排除>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</依赖>
<依赖关系>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<版本>2.6</版本>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</依赖>
<依赖关系>
<groupId>org.webjars</groupId>
<artifactId>sockjs 客户端</artifactId>
<版本>1.0.2</版本>
</依赖>
<依赖关系>
<groupId>org.webjars</groupId>
<artifactId>stomp-websocket</artifactId>
<版本>2.3.3</版本>
</依赖>
<依赖关系>
<groupId>org.webjars</groupId>
<artifactId>引导程序</artifactId>
<版本>4.1.3</版本>
</依赖>
<依赖关系>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<版本>3.3.1-1</版本>
</依赖>
<依赖关系>
<groupId>redis.clients</groupId>
<artifactId>绝地武士</artifactId>
<type>罐子</type>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<排除>
<排除>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</排除>
</排除>
</依赖>
<依赖关系>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</依赖>
<依赖关系>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>百里香布局方言</artifactId>
</依赖>
<依赖关系>
<groupId>org.projectlombok</groupId>
<artifactId>龙目岛</artifactId>
<版本>1.18.4</版本>
<范围>提供</范围>
</依赖>
<依赖关系>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>飞碟-pdf</artifactId>
<版本>9.1.4</版本>
</依赖>
<依赖关系>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<版本>2.0.11</版本>
</依赖>
<依赖关系>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-tools</artifactId>
<版本>2.0.11</版本>
</依赖>
<依赖关系>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-jpeg2000</artifactId>
<版本>1.3.0</版本>
</依赖>
<依赖关系>
<groupId>net.sf.dozer</groupId>
<artifactId>推土机</artifactId>
<版本>5.5.1</版本>
</依赖>
<依赖关系>
<groupId>com.google.guava</groupId>
<artifactId>番石榴</artifactId>
<版本>25.1-jre</版本>
</依赖>
<依赖关系>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<排除>
<排除>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</排除>
</排除>
</依赖>
</依赖项>
<依赖管理>
<依赖关系>
<依赖关系>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<版本>${spring-cloud.version}</version>
<type>pom</type>
<范围>导入</范围>
</依赖>
</依赖项>
</依赖管理>
<构建>
<插件>
<插件>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</插件>
<插件>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<版本>1.1.3</版本>
<处决>
<执行>
<目标>
<目标>过程</目标>
</目标>
<配置>
<outputDirectory>目标/生成源</outputDirectory>
<处理器>com.querydsl.apt.jpa.JPAAnnotationProcessor</处理器>
</配置>
</执行>
</执行>
</插件>
<插件>
<groupId>org.apache.maven.plugins</groupId>
<version>2.19.1</version><!--$NO-MVN-MAN-VER$ -->
<artifactId>maven-surefire-plugin</artifactId>
<配置>
<包括>
<include>**/*.class</include>
</包括>
</配置>
<依赖关系>
<依赖关系>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<版本>1.0.2</版本>
</依赖>
</依赖项>
</插件>
</插件>
</构建>
</项目>
这是我的 SwaggerConfig.java :
package org.sid.SFpostpros.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.Collections;
// TODO: Auto-generated Javadoc
/**
* The Class SwaggerConf.
*/
@Configuration
@EnableSwagger2
public class SwaggerConf implements WebMvcConfigurer {
/**
* Api.
*
* @return the docket
*/
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any()).build().apiInfo(this.custInfo());
}
/**
* Cust info.
*
* @return the api info
*/
public ApiInfo custInfo() {
return new ApiInfo("Test", // Title
"Spring Boot Services", // Description
"1.0", // Version
"TOS", // Terms of Service
new Contact("Test", "Test.com", "test@test.com"), // Contact
"Test license", // License
"License", Collections.emptyList());
}
/**
* Adds the resource handlers.
*
* @param registry the registry
*/
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
有人可以帮助我,因为我尝试了很多东西但没有任何效果。
原文由 Mena_Mena 发布,翻译遵循 CC BY-SA 4.0 许可协议
将此依赖项添加到您的依赖项部分解决了问题:
来源: https ://github.com/springfox/springfox/issues/2932