SpringBoot整合Swagger踩坑-项目启动报错与swagger-ui.html请求404无法访问

这篇具有很好参考价值的文章主要介绍了SpringBoot整合Swagger踩坑-项目启动报错与swagger-ui.html请求404无法访问。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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解决即可。

@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即可看到页面如下:
SpringBoot整合Swagger踩坑-项目启动报错与swagger-ui.html请求404无法访问
如果没有按照springfox推荐的依赖接入方式,会看到如下界面:
SpringBoot整合Swagger踩坑-项目启动报错与swagger-ui.html请求404无法访问
该页面为未启用swagger时,访问swagger的结果。swagger的配置在此不多做讨论。文章来源地址https://www.toymoban.com/news/detail-429852.html

到了这里,关于SpringBoot整合Swagger踩坑-项目启动报错与swagger-ui.html请求404无法访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot整合websocket后启动报错:javax.websocket.server.ServerContainer not available

    Springboot使用@ServerEndpoint来建立websocket链接。引入依赖。 配置Websocket springboot项目添加websocket依赖后运行测试类报如下错误: 报的错误是创建ServerEndpointExporterBean失败,原因是ServerContainer不可用,那么我们就去看到ServerContainer在ServerEndpointExporter中是怎么注入的。 点进去 Serve

    2024年01月18日
    浏览(42)
  • SpringBoot 整合Swagger2

    Swagger是一套开源工具和规范,用于设计、构建和文档化 RESTful Web 服务。它允许开发人员定义API的各个方面,并生成易于理解的API文档和交互式API探索界面。同时,Swagger还提供代码生成工具,可自动生成与API交互的客户端和服务器端代码,提高开发效率。 官网:https://swagge

    2024年04月27日
    浏览(33)
  • springboot 整合swagger 入门 使用

    一定要看好版本。 Springboot ✚ Swagger各版本整理_swagger版本_qq_33334411的博客-CSDN博客 我的版本: 新建一个boot web项目之后,导入上述依赖。 在confi包下新建一个SwaggerConfig.java配置类 Swgger2Config.java 在controller包新建HelloController.java 在modle.vo下新建HelloVO.java 在 application.yml/properties 文

    2024年02月12日
    浏览(36)
  • SpringBoot整合Swagger2

    在团队开发中,一个好的 API 文档不但可以减少大量的沟通成本,还可以帮助一位新人快速上手业务。传统的做法是由开发人员创建一份 RESTful API 文档来记录所有的接口细节,并在程序员之间代代相传。这种做法存在以下几个问题: 1)API 接口众多,细节复杂,需要考虑不同

    2023年04月16日
    浏览(37)
  • SpringBoot项目部署(Docker)——通过Dockerfile将打包好的jar包创建成镜像 & 在IDEA中配置docker,一键启动容器 & 用swagger进行测试

    1.Dockerfile命令初识,CMD…; 2.idea配置docker,图形化界面; 3.编写Dockerfile把jar包制作成镜像,并用idea一键生成和启动容器; 4.在Linux中测试,在宿主机用swagger进行测试; SpringBoot项目部署(jar包)——项目用maven打包成jar包 windows + Linux平台运行 Linux安装java 遇到的问题 Docker是一

    2024年02月05日
    浏览(52)
  • 【Springboot系列】Springboot整合Swagger3不简单

       Swagger是一个根据代码注解生成接口文档的工具,减少和前端之间的沟通,前端同学看着文档就可以开发了,提升了效率,之前很少写swagger,这次自己动手写,还是有点麻烦,不怎么懂,记录下,避免下次继续踩坑         新建一个springboo项目,一路next就好,这里使用的

    2024年02月05日
    浏览(39)
  • 服务器部署整合了elasticsearch的springboot项目后报错

            今天在服务器上面更新自己的项目的时候报错了 报错太长了,我提炼了一下,主要是说bean注入失败,各种service和controller全都寄了,后来看到里面有个elasticsearchRepository,又因为刚整合了elasticsearch,所以基本上可以确定问题就是出在elasticsearch上。         这

    2024年02月05日
    浏览(89)
  • 【Swagger】常用注解的使用、SpringBoot的整合及生产环境下屏蔽Swagger

            Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。它使得部署管理和使用功能强大的API从未如此简单。Swagger让文件的方法、参数和模型紧密集成到服务器端的代码,允许API始终保持同步。 在软件开发中,常用注解(Annotation)主

    2024年02月03日
    浏览(39)
  • 【微服务】springboot整合swagger多种模式使用详解

    目录 一、前言 1.1 编写API文档 1.2 使用一些在线调试工具 1.3 postman 1.4 swagger

    2024年02月07日
    浏览(48)
  • SpringBoot——2.7.3版本整合Swagger3

    Swagger2(基于openApi3)已经在17年停止维护了,取而代之的是 sagger3(基于openApi3),而国内几乎没有 sagger3使用的文档,百度搜出来的大部分都是swagger2的使用,这篇文章将介绍如何在 java 中使用 openApi3(swagger3)。 Open API OpenApi是业界真正的 api 文档标准,其是由 Swagger 来维护

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包