Usando Spring 3, me gusta crear un manejador de excepciones mediante el ExceptionHandler anotación que se encargará de "ninguna página encontrada (404)" solicitudes. Estoy usando el siguiente código para hacer esto. Pero cuando señalo una URL que no existe, se invoca el manejador de excepciones predeterminado definido por Spring.Spring 3 - Crear ExceptionHandler para NoSuchRequestHandlingMethodException
Es posible que esté manejando la excepción NoSuchRequestHandlingMethodException. Si es así, ¿qué excepción debería estar registrando?
¿Podría echar un vistazo al siguiente código y ver lo que estoy haciendo mal?
NOTA: Si cambio la excepción en el @ExceptionHandler a NullPointerException y crear un RequestMapping a tirar puntero nulo, que va a funcionar.
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class GeneralHandler {
private final Log logger = LogFactory.getLog(getClass());
@ExceptionHandler(NoSuchRequestHandlingMethodException.class)
public ModelAndView handleException (NoSuchRequestHandlingMethodException ex) {
ModelAndView mav = new ModelAndView();
logger.error("Exception found: " + ex);
return mav;
}
}
Gracias. Utilizaré el enfoque HandlerExceptionResolver. – sgsweb
¿funcionó para usted? Sigo teniendo el mismo problema – SJS