2015-04-27 2 views
0

Я пытаюсь создать минимальное воспроизведение проекта mvc весны для использования при диагностике ошибок в более сложных проектах. Но когда я пытаюсь щелкнуть по URL-адресу, который запускает метод контроллера, консоль eclipse дает ошибку, указывающую, что ModelAndView имеет значение NULL. В то время как this other question спрашивает об аналогичной ошибке, вы можете видеть, что на вопрос не был дан ответ, потому что четыре отдельных человека дали +1 комментарию, что ответ должен быть уточнен. Я также посмотрел на this other posting, но после этого совета по использованию org.springframework.web.servlet.ModelAndView вместо Map не удалось устранить проблему. Кроме того, я хотел бы использовать Map, если это возможно, потому что Map работает в моих более сложных приложениях. Как устранить эту ошибку?Spring return null ModelAndView to DispatcherServlet

Вот метод контроллера вызывается, когда генерируется ошибка:

@RequestMapping(value = "/TriggerTheError", method = RequestMethod.GET) 
public String processFindForm(HttpServletRequest request, BindingResult result, Map<String, Object> model) {   
    return "ReproduceError"; 
} 

консоли печатает из следующего бревна, когда метод выше контроллер называется:

13:59:10.874 [http-nio-8080-exec-3] DEBUG o.s.web.servlet.DispatcherServlet - DispatcherServlet with name 'MinimalDbaseExample' processing GET request for [/MinimalDbaseExample/TriggerTheError] 
13:59:10.874 [http-nio-8080-exec-3] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Looking up handler method for path /TriggerTheError 
13:59:10.874 [http-nio-8080-exec-3] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Did not find handler method for [/TriggerTheError] 
13:59:10.875 [http-nio-8080-exec-3] DEBUG o.s.w.s.h.SimpleUrlHandlerMapping - Matching patterns for request [/TriggerTheError] are [/**] 
13:59:10.875 [http-nio-8080-exec-3] DEBUG o.s.w.s.h.SimpleUrlHandlerMapping - URI Template variables for request [/TriggerTheError] are {} 
13:59:10.875 [http-nio-8080-exec-3] DEBUG o.s.w.s.h.SimpleUrlHandlerMapping - Mapping [/TriggerTheError] to HandlerExecutionChain with handler [org.spring[email protected]186a461c] and 1 interceptor 
13:59:10.875 [http-nio-8080-exec-3] DEBUG o.s.web.servlet.DispatcherServlet - Last-Modified value for [/MinimalDbaseExample/TriggerTheError] is: -1 
13:59:10.875 [http-nio-8080-exec-3] DEBUG o.s.web.servlet.DispatcherServlet - Null ModelAndView returned to DispatcherServlet with name 'MinimalDbaseExample': assuming HandlerAdapter completed request handling 
13:59:10.875 [http-nio-8080-exec-3] DEBUG o.s.web.servlet.DispatcherServlet - Successfully completed request 

Ответ


Решение было просто удалить BindingResult, потому что в этой ситуации это не было необходимо. Удалив BindingResult из аргументов в метод контроллера, ошибка была удалена. Позже, если требуется BindingResult, тогда было бы просто добавить другие обязательные элементы для BindingResult, которые не требуются для этого тестового примера.

Я помечаю ответ другого пользователя как принятый. Однако предыдущий абзац - это решение, разрешающее проблему.

ответ

1

Если вы хотите вернуть строку ReproduceError, тогда отметьте возвращаемое значение @ResponseBody.

С другой стороны, если у вас есть вид под названием ReproduceError, то, возможно, ваш резольвер изображения настроен неправильно?

EDIT: хорошо, выглядит как оказание ReproduceError зрения предназначен, но из файла журнала, кажется, что метод контроллера не попал.

+0

Извините, я не из тех, кто запускает случайный код, который я нашел в Интернете! Однако я могу сказать, что ваш отредактированный пост уже мне что-то сказал - я не думаю, что ваш метод попал! Я готов посмотреть на остальную часть вашего файла журнала, хотя, можете ли вы разместить это где-нибудь? – ninj

+0

Я добавил ответ в конец моего ОП. Я также отмечаю ваш ответ и +1, чтобы поблагодарить вас за это. Отдельно проект zipped eclipse представляет собой всего лишь набор папок и классов с некоторыми конфигурациями. В этом случае содержимое было настолько минималистичным, что потребовалось всего несколько минут, чтобы просто вырезать и вставлять файлы в новый проект и читать каждый файл, а не просто слепо импортировать. Но проблема все равно решена. – CodeMed

+0

Вы не должны отмечать ответ как принято, чтобы поблагодарить кого-то. Кто-то в будущем будет смотреть на этот ответ для руководства. –

Смежные вопросы