У меня есть Spring RequestMapping, который берет структуру JSON и преобразует ее в POJO. Если я отправлю маршрут некорректной структуре JSON, я вернусь к «400 Bad Request», но то, что я хотел бы получить, - это сообщение об ошибке, в котором указано, почему это был плохой запрос. У меня есть Validator, также проверяющий структуру JSON, но кажется, что он не вызывается, если структура не может быть преобразована. Есть ли способ, с помощью которого я могу получить доступ к встроенным ошибкам или исключениям HttpMessageConverter?Запрос на преобразование формы запроса
ответ
Я думаю, вы можете использовать ResponseEntityExceptionHandler для этого, переопределив метод handleHttpMessageNotReadable
.
От: 17.11.3 Handling Standard Spring MVC Exceptions:
Если вы предпочитаете писать содержание ошибок с помощью методов @ExceptionHandler вы можете продлить ResponseEntityExceptionHandler вместо этого. Это удобная база для классов @ControllerAdvice, предоставляющая метод @ExceptionHandler для обработки стандартных исключений Spring MVC и возврата ResponseEntity. Это позволяет настраивать ответ и записывать содержимое ошибки с помощью конвертеров сообщений. Подробнее см. ResponseEntityExceptionHandler javadocs.
Пример использования в ResponseEntityExceptionHandler
можно найти здесь: http://www.jayway.com/2013/02/03/improve-your-spring-rest-api-part-iii/
В противном случае вы можете найти более Spring MVC подходы обработки исключений здесь: https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
Если ваши потребности не слишком сложны, вы, возможно, просто хочу использовать SimpleMappingExceptionResolver
- 1. Преобразование CURL запроса на HTTP запрос Java
- 2. Преобразование запроса на завивание в http-запрос?
- 3. Преобразование запроса JDO объективировать запрос
- 4. Django внешний запрос формы запроса
- 5. Преобразование запроса sql запроса WITH запроса в запрос mysql
- 6. Преобразование простого запроса в запрос торта?
- 7. Преобразование SQL-запроса в запрос ActiveRecord
- 8. Автоматическое преобразование SQL-запроса в запрос ElasticSearch
- 9. Преобразование запроса MySql в запрос MSSql
- 10. Преобразование CURL запроса HTTP запрос Java
- 11. Преобразование запроса PBSELECT в стандартный SQL-запрос
- 12. Преобразование Sub запроса в одном запрос улого
- 13. Преобразование MySQL LIKE-запроса в полнотекстовый запрос
- 14. Преобразование SQL-запроса в Rails AREL-запрос?
- 15. Преобразование SQL-запроса в запрос Hive
- 16. Преобразование SQL-запрос к Rails ActiveRecord запроса
- 17. Запрос запроса на запрос Oracle
- 18. Узел Запрос запроса на запрос
- 19. Запрос на запрос SQL-запроса
- 20. Преобразование SQL-запроса в запрос IBatis/MyBatis
- 21. Преобразование запроса в параметризованный запрос asp.net
- 22. Преобразование запроса mysql в запрос zend?
- 23. Преобразование запроса Sql в запрос Laravel
- 24. Преобразование MySQL запрос в CodeIgniter запроса
- 25. Преобразование запроса MS SQL в запрос Informix
- 26. Преобразование запроса Oracle в запрос MySQL. all_indexes
- 27. Преобразование запроса Mysql в запрос Postgresql
- 28. преобразование запроса mysql в запрос redbean
- 29. Преобразование SQL-запроса в Hibernate-запрос
- 30. Преобразование SQL-запроса в запрос ElasticSearch
Спасибо за ответ. Я считаю, что это заставило меня правильно исправить эту проблему. Я добавил простой «@ ExceptionHandler» к моему Контроллеру и заметил что-то странное. Когда я пытаюсь отправить данные JSON на маршрут, я получаю 'javax.servlet.ServletException: не удалось разрешить просмотр с именем« group/person »в сервлет с именем« dispatcherServlet ». На данный момент я даже не уверен, что маршрут даже получает неверные данные JSON, так как сам маршрут не может быть найден. Если я отправлю хорошо сформированную структуру JSON, маршрут будет вызван просто отлично. – dmux
Рад слышать, что вы добиваетесь прогресса. Что-то звучит немного странно, если вы разместите сокращенный пример своей проблемы, который может пролить немного света, что вы видите. – ninj