Я добавил swagger-uiв свое сервисное приложение с весенней загрузкой, и у меня возникла такая ошибка при переходе по /swagger-ui/ссылке.
Ошибка в консоли браузера, посмотрите изображение (нажмите на эту ссылку)
Моя ссылка в чванстве отсюда:
https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api
вот мой пример кода конфигурации:
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoggerInterceptor());
}
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
Я попытался исключить эту часть:
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
до сих пор нет решения. Надеюсь, кто-то может помочь. Спасибо.
Решение проблемы
Помимо ответа @Lukasz, иногда, как часть заголовков ответа, может показаться, что вы возвращаете Content-Typeобъект application/jsonдля HttpServletResponseвсех запросов в вашей конфигурации безопасности spring.
Вам нужно проверить свой код и выяснить, где вы устанавливаете Content-Type в конфигурации безопасности spring.
Например, я устанавливал свой метод переопределения doFilterInternalкласса OncePerRequestFilter.
public class JwtAuthenticationFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws IOException, ServletException {
res.setStatus(HttpStatus.OK.value());
//The below commented line seem to apply for all URIs.
//res.setContentType("application/json");
}
}
ВНИМАНИЕ: Вы знаете свой код лучше, чем кто-либо другой, поэтому просто знайте, что делаете.
Комментариев нет:
Отправить комментарий