Spring 添加 swagger 注解报错 DocumentationPluginsBootstrapper - [scanDocumentation,98] - Unable to scan documentation context default
对若依的系统工具自动生成的代码添加接口注解,然后就报错了
首先可以确认之前是没有报错的,当下修改的主要是,添加控制器及方法的注解,和添加请求参数实体及属性的注解。
通过在新添加接口注解的控制器上添加 @ApiIgnore
来使 swagger 忽略该控制器,测试没有报错。这样可以一个一个的去除该注解来确认出现 swagger 注解错误的控制器及其请求参数实体。但需要的测试太多也太慢了。
百度一下,找到一篇相关的解决方法:使用swagger遇到的问题-启动服务出现空指针异常(Unable to scan documentation context default),描述非常准确且一致。
提到的原因:
针对此问题,研究发现,引起这个错误的是某个entity类,进一步检查发现这个实体类中成员变量使用的属性权限是public;自己在定义变量时,不小心把成员变量的属性都弄成了public,swagger在获取参数时,不能正确识别成员变量的权限。
针对引入的参数实体一个个找,很快找到了权限为 public 的属性:
也只有这一个属性标记错了,不确定是复制错了还是其他什么原因。修改为 private 之后,重启 OK!
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
多谢多谢,厉害了,问题已经解决。