갑자기 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
'programing' 카테고리의 다른 글
WordPress REST API를 사용한AJAX 경유 비밀번호 변경 (0) | 2023.02.23 |
---|---|
@PathVariable in SpringBoot(URL 슬래시 포함) (0) | 2023.02.23 |
개체 키에 정확히 각도 필터 (0) | 2023.02.18 |
프로토콜 버퍼와 JSON 또는 BSON 비교 (0) | 2023.02.15 |
심판에게 소품을 건네는 적절한 방법은 무엇입니까? (0) | 2023.02.15 |