He configurado web.xml como a continuación. También tengo un controlador basado en anotaciones, que toma cualquier patrón de URL y luego va al jsp correspondiente (lo he configurado en -servlet.xml). Sin embargo, si voy a una página que termina en .html (y cuya jsp no existe), no veo la página 404 personalizada (y veo el error a continuación en el registro). Cualquier página que no termine en .html, puedo ver la página 404 personalizada.Personalizado 404 usando Spring DispatcherServlet
¿Cómo puedo configurar para tener una página 404 personalizada para cualquier página que pase por DispatcherServlet?
También quiero agregar que si configuro mi página de error en una página estática (es decir, error.htm) funciona, pero si la cambio a jsp (es decir, error.jsp), obtengo la IllegalStateException. Cualquier ayuda sería apreciada.
error del registro de
Caused by: java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:606)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
controlador
@RequestMapping(value = {"/**"})
public ModelAndView test() {
ModelAndView modelAndView = new ModelAndView();
return modelAndView;
}
Web.xml
<servlet>
<servlet-name>my_servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
...
<servlet-mapping>
<servlet-name>my_servlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
...
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
Prueba este -> http://ekiras.blogspot.in/ 2015/02/custom-error-404-error-page-in-spring-mvc.html –