Spring MVC Spring安全性和错误处理
我正在使用ResponseEntityExceptionHandler全局处理错误,并且几乎可以正常工作,只是我想用spring处理错误的请求。通过任何逻辑,handleNoSuchRequestHandlingMethod都应处理此问题,但是总是要进行处理
HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/7.0.37
在控制台中启用调试时,我刚刚得到以下信息:
WARN:org.springframework.web.servlet.PageNotFound-找不到带URI的HTTP请求的映射
只是为了通过处理澄清一下,我的意思是我要返回JSON。
知道如何处理吗?
回答:
在DispatcherServlet
类; 它发送错误响应而无需打扰调用异常处理程序(默认情况下)。
由于4.0.0.RELEASE这种行为可以简单地改变与throwExceptionIfNoHandlerFound参数:
设置在找不到此请求的处理程序时是否引发
NoHandlerFoundException
。然后可以使用HandlerExceptionResolver
或@ExceptionHandler
控制器方法捕获此异常。
XML配置:
<servlet> <servlet-name>rest-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>throwExceptionIfNoHandlerFound</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
基于Java的配置:
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { void customizeRegistration(ServletRegistration.Dynamic registration) {
registration.setInitParameter("throwExceptionIfNoHandlerFound", "true");
}
...
}
然后NoHandlerFoundException
可以这样处理:
@ControllerAdvicepublic class GlobalExceptionHandler extends ResponseEntityExceptionHandler {
@Override
ResponseEntity handleNoHandlerFoundException(NoHandlerFoundException ex,
HttpHeaders headers, HttpStatus status, WebRequest request) {
// return whatever you want
}
}
以上是 Spring MVC Spring安全性和错误处理 的全部内容, 来源链接: utcz.com/qa/398908.html