King of Stock

[swagger2] Whitelabel Error Page 본문

IT 기술

[swagger2] Whitelabel Error Page

king of stock 2019. 7. 6. 12:10

Pet 프로젝트에 swagger를 적용하기 위해서 관련 설정을 검색(구글링)하여 한국 블로그 내용을 기준으로 적용을 해보았다.

애플리케이션을 기동하고 http://localhost:8080/swagger-ui.html 접속하니...

잘 만들어진 에러 페이지

위와 같이 잘(?) 만들어진 에러 페이지가 응답으로 왔다. 로그를 보니 No mapping for GET /swagger-ui.html WARN 레벨의 로그가 아래와 같이 발생했다.

2019-07-06 12:44:47.556  INFO 2272 --- [)-192.168.100.4] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2019-07-06 12:44:47.556  INFO 2272 --- [)-192.168.100.4] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2019-07-06 12:44:47.572  INFO 2272 --- [)-192.168.100.4] o.s.web.servlet.DispatcherServlet        : Completed initialization in 16 ms
2019-07-06 12:44:59.093  WARN 2272 --- [nio-8080-exec-1] o.s.web.servlet.PageNotFound             : No mapping for GET /swagger-ui.html

위에 응답은 application.yml에서 다음과 같이 설정되어 있으면 HTTP Status 404 – Not Found 응답이 브라우저에 보일 것이다.

server:
  port: ${PORT:8080}
  error:
    whitelabel:
      enabled: false

관련 내용을 다시 검색하여 확인해보니 다음과 같은 리소스를 등록하는 설정을 하지 않아 발생하는 현상이였다. 다음과 같이 리소스를 등록하는 설정을 통해서 문제를 해결하였다.

@Configuration
@EnableAsync
@EnableWebMvc
@EnableSwagger2
public class WebMvcConfiguration implements WebMvcConfigurer {

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

  @Bean
  public Docket swagger() {
    return new Docket(DocumentationType.SWAGGER_2)
        .select()
        .apis(RequestHandlerSelectors.any())
        .paths(PathSelectors.any())
        .build();
  }
}

위의 추가한 설정으로 다시 애플리케이션을 기동하면...

올바른 설정을 통한 swagger ui 화면

휴... ㅋ

swagger 설정 추천글

'IT 기술' 카테고리의 다른 글

[Kubernetes] StatefulSet podAntiAffinity  (0) 2019.08.03
[test] TestRestTemplate  (0) 2019.07.07
JPA Auditing  (0) 2019.06.23
[PostgreSQL] Postgresql DB 생성 on Mac  (0) 2019.04.27
[IntelliJ IDE] 인텔리J 구동이 안된 경험  (0) 2019.04.09
Comments