我有以下全局请求映射来处理所有不存在的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)
...但它不起作用...异常从未得到触发。
那么有办法解决这个问题吗?
我尝试了以下内容:
@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);
}
但是没有处理程序发现异常没有被抛出!