Использования Spring 3, я хотел бы создать обработчик исключений с помощью ExceptionHandler аннотации, которая будет обрабатывать «не найдено страницы (404)» запросов. Для этого я использую следующий код. Но когда я указываю на URL-адрес, который не существует, вызывается обработчик исключений по умолчанию, определенный Spring.Spring 3 - Создание ExceptionHandler для NoSuchRequestHandlingMethodException
Возможно, я обрабатываю исключение исключений NoSuchRequestHandlingMethodException. Если да, то какое исключение я должен регистрировать?
Не могли бы вы взглянуть на следующий код и посмотреть, что я делаю неправильно?
Примечание: Если изменить исключение в @ExceptionHandler к NullPointerException и создать RequestMapping бросить пустой указатель, который будет работать.
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;
}
}
спасибо. Я буду использовать подход HandlerExceptionResolver. – sgsweb
Это сработало для вас? У меня все еще такая же проблема. – SJS