我正在使用Swagger UI与Spring启动应用程序集成。当我击中swagger-ui.html时。我收到404错误。我的配置类如下:
@Configuration
@EnableSwagger2
//@Import(SwaggerConfiguration.class)
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
...
错误讯息:
{"status":404,"message":"HTTP 404 Not Found","link":"https://jersey.java.net/apidocs/2.8/jersey/javax/ws/rs/NotFoundException.html"}
答案 0 :(得分:1)
希望这会有所帮助,请在下面找到我的有效工作配置:
@Configuration
@EnableSwagger2
@Profile({"!production"})
public class SwaggerConfiguration extends WebMvcConfigurerAdapter {
@Autowired
private ServletContext servletContext;
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.host("localhost")
.directModelSubstitute(LocalDate.class, Date.class)
.pathProvider(new RelativePathProvider(servletContext) {
@Override
public String getApplicationBasePath() {
return "/";
}
})
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
答案 1 :(得分:1)
我遇到了类似的问题,其中/swagger-ui.html(或新的端点版本/ swagger-ui /)返回404,但/ v2 / api-docs返回了有效的json。解决的办法是将摇摇欲坠的版本从3.0.0降级。到2.9.2。
答案 2 :(得分:0)
您的配置类之一中是否有@EnableWebMvc?如果是这样,您将必须手动进行资源配置,如下所示:
@Override
public void addResourceHandlers (ResourceHandlerRegistry registry) {
registry.addResourceHandler("/swagger-ui.html**")
.addResourceLocations("classpath:/META-INF/resources/swagger-ui.html");
registry.
addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
答案 3 :(得分:0)
如果您使用的是版本 > 3,只需使用 IDAT
而不是 /swagger-ui/