programing

갑자기 Springfox Swagger 3.0이 spring webflux에서 작동하지 않음

megabox 2023. 2. 23. 22:41
반응형

갑자기 Springfox Swagger 3.0이 spring webflux에서 작동하지 않음

어플리케이션은 며칠 전 Springfox Swagger 3.0에서 동작하고 있었습니다.갑자기 작동을 멈춘다.일주일 전에 작성한 Jar 파일은 아직 동작하고 있습니다만, 새로운 Jar 파일을 작성하려고 하면 코드나 라이브러리를 변경하지 않아도 동작하지 않습니다.아래 URL까지 참조했지만 여전히 문제가 있습니다.

swagger-ui 및 spring webflux에서 404 오류 발생

이하에, 설정을 나타냅니다.

POM 파일:

<properties>
    <java.version>1.8</java.version>
    <springfox.version>3.0.0-SNAPSHOT</springfox.version>
    <spring.version>2.3.1.RELEASE</spring.version>
</properties>
<repositories>
    <repository>
        <id>spring-libs-milestone</id>
        <name>Spring Milestone Maven Repository</name>
        <url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${springfox.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-spring-webflux</artifactId>
        <version>${springfox.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${springfox.version}</version>
    </dependency>
</dependencies>

구성 파일:

@Configuration
@EnableSwagger2WebFlux
public class SwaggerConfiguration implements WebFluxConfigurer {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .description("My Reactive API")
                        .title("My Domain object API")
                        .version("1.0.0")
                        .build())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.reactive.controller"))
                .paths(PathSelectors.any())
                .build();

    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("/swagger-ui.html**")
                .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

스웨거 페이지를 열려고 하면 404 에러가 납니다.

http://localhost:8080/http-ui.syslog

누가 나 좀 도와줄래?잘 부탁드립니다.

최근에 구현이 변경되었습니다(간단한 업데이트는 이전 스냅샷에서 마이그레이션 참조).

이제 UI는 다음에서 사용할 수 있습니다./swagger-ui엔드포인트(비탑재)/swagger-ui.html).

또, 이 버젼을 드롭 해 주세요.@EnableSwagger2WebFlux주석 및addResourceHandlers()springfox 의존관계를 모두 삭제하고 다음 1개만 추가합니다.

<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>${springfox.version}</version>
</dependency>

Springboot Rest API의 Swagger-3 시작

신규 프로젝트의 경우

메이븐의 경우:-

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

Gradle의 경우:-

  implementation "io.springfox:springfox-boot-starter:<version>"

이제 활성화할 추가 구성이 없습니다.swagger이전과 같은 스프링 부트프로젝트입니다시큐러티를 사용해 설정하려고 하면, 몇개의 설정이 있습니다.이 문서를 참조해 주세요.

swagger 버전3에서는@EnableSwagger2주석 기반 구성도 가능합니다.

그리고 대부분의 사용자는 HTML swagger 문서 파일을 검색하려고 합니다.{host}/swagger-ui.html또는{host}/swagger-ui이제 그것들이 제거되었습니다.

사용하다 {host}/swagger-ui/HTML 문서를 표시하다

이것은 GitHub의 샘플 프로젝트 링크입니다. 문서를 참조하십시오.

난 이렇게 됐어.인텔 iJ IDEA, Spring Boot, Maven을 사용하고 있습니다.

스웨거 종속성을 다음과 같이 추가하는 경우:

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency> 

그것들은 빨간색으로 칠해져 있어서 나는 그것들을 전혀 추가할 수 없었다.프로젝트를 다시 로드하고 소스를 생성하고 폴더를 업데이트하려고 했지만 설치할 수 없었습니다.

그리고 이 의존관계도 추가했습니다.

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>

그리고 그것은 잘 작동했다.또한 이 문제에 대한 결론은 다음과 같습니다.

백둥

그래서 결국 내 pom.xml 파일에 다음과 같은 내용이 들어 있었다.

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>

Swagger 3.0을 사용하여 브라우저에서 Swagger UI를 표시하려면

http://localhost:8080/http-ui/index.displays

누군가에게 도움이 되었으면 좋겠다:)

io.springfox 종속성이 없는 이 종속성만 사용합니다.

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>

이제 이전과 같은 스프링 부트 프로젝트에서 swagger를 활성화하기 위한 추가 구성이 없습니다.

swagger 버전 3.0.0에서는 @Configuration 및 @EnableSwagger2 및 주석을 삭제합니다.

{host}/swagger-ui/를 사용하여 HTML 문서 {host}/swagger-ui.html 또는 {host}/swagger-ui를 확인합니다.슈나이더

네, 모든 것을 읽고 가장 노력한 끝에 /swagger-ui/index.html#에 swagger-ui를 붙였습니다.

https://github.com/springfox/springfox-demos/tree/master/boot-swagger

최신 버전의 스프링 부트애플리케이션을 사용하고 있는 경우는, 다음의 순서에 따라서 애플리케이션의 swagger 를 유효하게 합니다.

스텝 1 : pom.xml에 다음 의존관계 추가

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>

스텝 2 : 이 속성을 application.properties 파일에 추가합니다.

spring.mvc.pathmatch.matching-strategy = ANT_PATH_MATCHER

스텝 3 : Spring-Boot 어플리케이션을 기동합니다.

Strp-4 :http://localhost:8080/swagger-ui/ 를 참조합니다.

주의: 1.

  • 위에 주어진 종속성을 제외하고 다른 종속성은 필요하지 않습니다.

  • 이전 버전의 swagger를 사용하고 새로운 버전으로 이행하고 있는 경우는, 상기의 순서를 실행해, 이하의 주석을 애플리케이션으로부터 삭제해 주세요.이것은 더 이상 필요 없습니다.

    @EnableSwagger2WebFlux

언급URL : https://stackoverflow.com/questions/62773219/suddenly-springfox-swagger-3-0-is-not-working-with-spring-webflux

반응형