zoukankan      html  css  js  c++  java
  • 记一次SpringFox 3(别称:Swagger3)集成到SpringBoot项目404错误解决

      本人菜鸟弱鸡一枚,最近入手一个新项目,在我看来很高大上,分布式、微服务的SpringBoot项目。在这个项目中我负责单独开发一个模块,开发完后与同事联调结果发现没有接口文档,没办法,上swagger。

      swagger是一个在线文档,之前用过别人集成的,感觉还不错,这次自己集成到项目中。不过,swagger2已经被官方停维了,所以我决定采用最新的swagger 3,也就是SpringFox 3。根据文档,引入了SpringFox后,配置好SpringFox后,兴致冲冲的启动项目,访问地址:http://IP:端口/项目上下文/swagger-ui/,结果访问不了

       这是个难题啊,没得说,找度娘,网友很给力,有很多回答,不过,看了很多回答记录,总的来说就是几条:

    • 配置错误,导致swagger未启动
    • 版本变更大,页面路径错误
    • 拦截器拦截了swagger请求

      大概都是这三种吧,由于springFox 3没找到太多资料,现在记录下我的解决方法:

      问题一、SpringFox是springboot的swagger,所以它的配置不多,只要在springboot启动文件App.java中加入@EnableOpenApi注解即可

       其他的东西都是可选配置的,目前我们先要确保swagger能访问才是关键。所以其他的配置先不管

      问题二由问题一可知,页面之类的不用管,所以这个问题排除,当然SpringFox 3对于JDK有版本要求,必须是JDK 8以上才行

      问题三有可能,但经过查找这个不是我的问题,当然,如果是解决方法也很简单,将SpringFox的相关路径/swagger-resources/、/swagger-ui/等配置忽略不拦截就可以了。

      三个问题都不是我的问题,还有什么问题呢?经过一翻跟踪,我找到了一个特殊的注解:@ControllerAdvice,统一处理的注解,我....,这年头还有人用@ControllerAdvice不给范围的,这有点坑啊,试下给@ControllerAdvice加上范围后,重启,访问:http://IP:端口/项目上下文/swagger-ui/,成功,swagger成功出现。

      总结,SpringFox主要问题排除点在于1、启动时的注解@EnableOpenApi,2、地址是否被过滤器拦截,3、是否有配置全局的@ControllerAdvice,并对返回结果的结构进行重构处理,4、页面的访问路径是否是:http://IP:端口/项目上下文/swagger-ui/ 或 http://IP:端口/项目上下文/swagger-ui/index.html 。就这四点

  • 相关阅读:
    关于拉格朗日乘子法和KKT条件
    深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
    安全模式下运行Windows installer并卸载程序
    win10 进入安全模式的方法
    支持向量机通俗导论(理解SVM的三层境界)
    Windows系统防火墙用法
    浏览器起始页被篡改恶意跳转解决方法
    网络熟知端口号
    SSL/TLS协议运行机制的概述
    分布式拒绝服务攻击 DDoS
  • 原文地址:https://www.cnblogs.com/lovelyli/p/15067369.html
Copyright © 2011-2022 走看看