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
。
我正在使用 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
。