Spring mockMvc 在使用 ExceptionHandler 时抛出错误

Spring mockMvc throws error when using ExceptionHandler

我正在使用 SpringMockMvc,在我的控制器中有 @ExceptionHandler。调用 post 请求时,出现以下错误。

Failed to invoke @ExceptionHandler method: public org.springframework.http.ResponseEntity<com.xx.xxx> com.xx.xx.handleException(java.lang.Throwable,org.eclipse.jetty.server.Request)
java.lang.IllegalStateException: Current request is not of type [org.eclipse.jetty.server.Request]: org.springframework.mock.web.MockHttpServletRequest@47fac1bd
        at org.springframework.web.servlet.mvc.method.annotation.ServletRequestMethodArgumentResolver.resolveArgument(ServletRequestMethodArgumentResolver.java:97)

我不确定为什么 @ExceptionHandler 无法处理请求类型 org.springframework.mock.web.MockHttpServletRequest

这永远行不通,因为 org.springframework.mock.web.MockHttpServletRequest 不是 org.eclipse.jetty.server.Request 的子类型。因此,Spring 不可能为 org.eclipse.jetty.server.Request.

类型的参数提供 MockHttpServletRequest 的实例

您需要将 handleException() 方法中第二个参数的类型更改为 javax.servlet.http.HttpServletRequest