再springboot上使用swagger接口组件,并通过配置实现网关聚合文档时有个服务的文档打开失败,检查接口发现请求地址“/v2/api-docs”时该服务返回失败,程序报空指针异常,但单独打开该服务下的文档地址(如:
)时确是正常的。
检查了各种配置,对比其他服务未发现异常。而通过网关聚合调用接口“/v2/api-docs”时报异常,最终通过断点跟踪发现所写的接口里参数设置不规范导致,如请求地址中的/path/{id} => func(@PathVariable("id") String dataId)这种写法,以及 ApiImplicitParam(name="name") 对应方法参数里的username等不统一的写法很可能会导致异常。
同样api注解里的参数说明包含特殊字符时也可能导致异常,如斜杠(/)。
多检查,除了配置问题外,一般是接口参数写法问题导致!