I'm using ResponseEntityExceptionHandler for global handling the error and almost working normal, except I want to handle wrong request with spring. By any logic overriding handleNoSuchRequestHandlingMethod should handle this, but insted of handling always get
HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/7.0.37
I just got this when enable debuging in console:
WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI
just to clarify by handling I mean I'm returning JSON.
any idea how to handle this?
The reason is right there, in the
DispatcherServlet
class; it sends error response without bothering to call exception handler (by default).Since 4.0.0.RELEASE this behaviour can be simply changed with throwExceptionIfNoHandlerFound parameter:
XML configuration:
Java-based configuration:
Then
NoHandlerFoundException
can be handled like this:throwExceptionIfNoHandlerFound
take into account only if no handlers for request found.In case of
default-servlet-handler
was configured,DefaultServletHttpRequestHandler
will handle request. So, if this solution doesn't work, remove it and have a look (debug) this place ofDispatcherServlet
.