본문 바로가기
Web/Spring

[Swagger] Swagger2 2.xx 버전오류

by 정고정 2021. 11. 2.
반응형


swagger 도입하면서 사소한 오류들이 은근히 짜증나서 정리해 두기로 했다.
사실 정리랄 것도 없는 게 결론적으로 버전을 3.0.0으로 잡아주면 해결된다.

swagger 페이지 매핑이 안 되는 경우.

There was an unexpected error (type=Not Found, status=404).
No handler found for GET /swagger-ui.html
org.springframework.web.servlet.NoHandlerFoundException: No handler found for GET /swagger-ui.html

이 에러는 짚이는 구석이 너무 많아서 애먹었다.
원인은 찾았고 해결은 했는데 솔직히 이게 왜 뜬 건지는 아직도 모르겠음...
역시 동일하게 2.xx버전에서는 리소스핸들러를 수동으로 등록해줘야 한다고 한다.
WebMvcConfigurer를 implement한 @Config파일에 추가해 준다.

@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/"); }

@RequestBody를 param으로 받는 Post/Put method가 인식이 안 되는 문제

Swagger ui에 접속하면 Get이나 Delete 방식의 API만 잡히는 오류인데, 2.xx버전에서 이런 문제가 발생한다고 한다.
이건 방법도 없고 그냥 버전 높여주는 게 답인 것 같다.

해결

pom.xml에 swagger dependency를 3.0으로 넣어주기

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

swagger ui 경로

3.0.0
http://localhost:8080/swagger-ui/index.html
2.9.2
http://localhost:8080/swagger-ui.html

반응형

댓글