Spring引导全局请求映射禁用Swagger

时间:2017-03-31 07:16:42

标签: java spring spring-boot swagger-2.0

我有以下全局请求映射来处理所有不存在的REST:

@RequestMapping("*")
@ResponseStatus(HttpStatus.NOT_FOUND)
public ErrorResponse handlerNotMappingRequest(RequestContext context) {

    return new ErrorResponse("Path not found: '" + context.getPath() +"'", HttpStatus.NOT_FOUND);
}

但这会禁用:/swagger-ui.html API文档。

当我删除全局映射时,一切正常,但我松开了自定义404未找到的响应。

PS:我试图通过NoHandlerFoundException.class实现全局404异常处理程序并配置DispatcherServlet .setThrowExceptionIfNoHandlerFound(true) ...但它不起作用...异常从未得到触发。

那么有办法解决这个问题吗?

  1. 配置我的Spring启动应用程序以了解它应该对swagger请求做出反应吗?
  2. 使用我自己的?
  3. 覆盖全局404异常处理

    我尝试了以下内容:

    @Configuration
    @SpringBootApplication
    public class CatalogApplication extends SpringBootServletInitializer {
    
        public static void main(String[] args) {
    
            ApplicationContext ctx = SpringApplication.run(MyApplication.class, args);
            DispatcherServlet dispatcherServlet = (DispatcherServlet)ctx.getBean("dispatcherServlet");
            dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);
        }
    

    但是没有处理程序发现异常没有被抛出!

0 个答案:

没有答案