我正在使用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
无法处理
答案 0 :(得分:1)
这可能永远不会有效,只是因为org.springframework.mock.web.MockHttpServletRequest
不是org.eclipse.jetty.server.Request
的子类型。因此,Spring不可能为MockHttpServletRequest
类型的参数提供org.eclipse.jetty.server.Request
的实例。
您需要将handleException()
方法中第二个参数的类型更改为javax.servlet.http.HttpServletRequest
。