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可以这样处理:

@ControllerAdvice

public 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

回到顶部