SpringBoot整合Swagger踩坑-项目启动报错与swagger-ui请求404无法访问
项目依赖与配置
依赖
常见依赖接入方式如下:
<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>
springfox推荐依赖接入方式如下:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
建议使用推荐的方式,可以协助我们解决404异常的问题。
配置
依赖导入完成后创建SwaggerConfig.java
配置:
@Configuration
@EnableSwagger2//启用Swagger2
public class SwaggerConfig {
}
启动项目报错
报错信息:
org.springframework.context.ApplicationContextException: Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerException
at ……
Caused by: java.lang.NullPointerException: null
at ……
… 14 common frames omitted
错误原因:SpringBoot2.6.x使用PathPatternMatcher匹配路径,Swagger引用的Springfox基于AntPathMatcher匹配路径。匹配方式不同,导致错误。
解决思路:将SpringBoot的匹配路径方式更改为AntPathMatcher,两者相同即可。添加配置信息如下:
spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER
重新启动项目成功。
访问默认路径http://localhost:8080/swagger-ui.html 404异常
资源无法访问原因:seagger信息被拦截,自定义WebMvcConfigurer解决即可。文章来源:https://www.toymoban.com/news/detail-429852.html
@Configuration
public class WebConfig implements WebMvcConfigurer {
/**
* 添加静态资源处理器
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/").resourceChain(false);
}
/**
* 添加视图控制器
* @param registry
*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/swagger-ui/").setViewName("/swagger-ui/index.html");
}
}
访问http://localhost:8080/swagger-ui/index.html即可看到页面如下:
如果没有按照springfox推荐的依赖接入方式,会看到如下界面:
该页面为未启用swagger时,访问swagger的结果。swagger的配置在此不多做讨论。文章来源地址https://www.toymoban.com/news/detail-429852.html
到了这里,关于SpringBoot整合Swagger踩坑-项目启动报错与swagger-ui.html请求404无法访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!