Spring

org.springframework.plugin.core.PluginRegistry의 호환 가능한 단일 버전을 포함하도록 애플리케이션의 클래스 경로를 수정하십시오.

기록만이살길 2022. 11. 6. 13:50
반응형

org.springframework.plugin.core.PluginRegistry의 호환 가능한 단일 버전을 포함하도록 애플리케이션의 클래스 경로를 수정하십시오. 물어보다

1. 질문(문제점):

스프링 클라우드를 사용하여 모듈식 앱을 마이크로 서비스 앱으로 마이그레이션 중입니다. 모듈을 마이크로 서비스로 마이그레이션하고 실행했을 때 다음과 같은 문제가 발생했습니다.

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:file:/~/.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.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입니다.

<프로젝트 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">
    <modelVersion>4.0.0</modelVersion>
    <부모>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <버전>2.3.0.RELEASE</버전>
        <relativePath/> <!-- 저장소에서 부모 찾기 -->
    </부모>
    <groupId>org.sid</groupId>
    <artifactId>SF-포스트프로</artifactId>
    <버전>0.0.1-SNAPSHOT</버전>
    <name>SF-포스트프로</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>스프링 부트 스타터 액츄에이터</artifactId>
            <제외>
                <제외>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>스프링 부트 스타터 로깅</artifactId>
                </제외>
            </제외>
        </의존성>
        <의존성>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>런타임</scope>
        </의존성>
        <의존성>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </의존성>
        <의존성>
            <groupId>javax.validation</groupId>
            <artifactId>검증 API</artifactId>
            <버전>2.0.1.최종</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>스프링 플러그인 코어</artifactId>
            <버전>1.2.0.RELEASE</버전>
        </의존성>
        <의존성>
            <groupId>org.springframework.boot</groupId>
            <artifactId>스프링 부트 스타터 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>스프링 부트 스타터 테스트</artifactId>
            <scope>테스트</scope>
            <제외>
                <제외>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>주니트 빈티지 엔진</artifactId>
                </제외>
            </제외>
        </의존성>
        <의존성>
            <groupId>org.springframework.security</groupId>
            <artifactId>스프링 Security 테스트</artifactId>
            <scope>테스트</scope>
        </의존성>

        <의존성>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>테스트</scope>
        </의존성>
        <의존성>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-launcher</artifactId>
            <scope>테스트</scope>
        </의존성>

        <의존성>
            <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>스프링 부트 스타터-log4j2</artifactId>
        </의존성>
        <의존성>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
            <제외>
                <제외>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>스프링 부트 스타터 로깅</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>스프링 부트 스타터 로깅</artifactId>
                </제외>
            </제외>
        </의존성>
        <의존성>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </의존성>
        <의존성>
            <groupId>org.springframework.boot</groupId>
            <artifactId>스프링 부트 스타터 배치</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>스톰프 웹 소켓</artifactId>
            <버전>2.3.3</버전>
        </의존성>
        <의존성>
            <groupId>org.webjars</groupId>
            <artifactId>부트스트랩</artifactId>
            <버전>4.1.3</버전>
        </의존성>
        <의존성>
            <groupId>org.webjars</groupId>
            <artifactId>제이쿼리</artifactId>
            <버전>3.3.1-1</버전>
        </의존성>
        <의존성>
            <groupId>redis.clients</groupId>
            <artifactId>제디스</artifactId>
            <type>항아리</type>
        </의존성>
        <의존성>
            <groupId>org.springframework.boot</groupId>
            <artifactId>스프링 부트 스타터 웹</artifactId>
            <제외>
                <제외>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>스프링 부트 스타터 로깅</artifactId>
                </제외>
            </제외>
        </의존성>
        <의존성>
            <groupId>org.springframework.boot</groupId>
            <artifactId>스프링 부트 스타터 메일</artifactId>
        </의존성>
        <의존성>
            <groupId>nz.net.ultraq.thymeleaf</groupId>
            <artifactId>thymeleaf-layout-dialect</artifactId>
        </의존성>
        <의존성>
            <groupId>org.projectlombok</groupId>
            <artifactId>롬복</artifactId>
            <버전>1.18.4</버전>
            <scope>제공</scope>
        </의존성>
        <의존성>
            <groupId>org.xhtml렌더러</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 도구</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>스프링 부트 스타터 로깅</artifactId>
                </제외>
            </제외>
        </의존성>
    </의존성>

    <의존성 관리>
        <의존성>
            <의존성>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>스프링 클라우드 의존성</artifactId>
                <버전>${spring-cloud.version}</version>
                <type>폼</type>
                <scope>가져오기</scope>
            </의존성>
        </의존성>
    </의존성 관리>

    <빌드>
        <플러그인>
            <플러그인>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </플러그인>
            <플러그인>
                <groupId>com.mysema.maven</groupId>
                <artifactId>apt-maven-plugin</artifactId>
                <버전>1.1.3</버전>
                <처형>
                    <실행>
                        <목표>
                            <목표>과정</goal>
                        </목표>
                        <구성>
                            <outputDirectory>대상/생성 소스</outputDirectory>
                            <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                        </구성>
                    </실행>
                </실행>
            </플러그인>
            <플러그인>
                <groupId>org.apache.maven.plugins</groupId>
                <버전>2.19.1</버전><!--$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/");
    }
}

내가 너무 많은 것을 시도했지만 아무 것도 효과가 없었기 때문에 누군가가 나를 도울 수 있습니까?

2. 해결방안:

의존성 섹션에 이 의존성을 추가하면 문제가 해결되었습니다.

        <dependency>
            <groupId>org.springframework.plugin</groupId>
            <artifactId>spring-plugin-core</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>

출처: https://github.com/springfox/springfox/issues/2932

62540189
반응형