У меня есть спокойное приложение веб-службы, которое использует JSON и развернуто на сервере EA JBosss 6, который, в свою очередь, использует среду resteasy. Платформа resteasy проверяет каждый пользовательский запрос для меня и отправляет обратно сообщение об ошибке клиенту, если данные запроса ошибочны. Кроме того, resteasy устанавливает код состояния HTTP равным 400, что мне не нужно.
Например, я определил в своем приложении перечисление MandantCode, которое имеет три возможных значения (UNIQA, SLV, VVD) и является частью объекта запроса. Если я тестирую свое приложение, предоставив MandantCode несуществующее значение XXX, например:
"mandant" : {
"code": "XXX"
},
Я получаю следующее сообщение об ошибке:
JBWEB000065: HTTP Status 400 - org.codehaus.jackson.map.JsonMappingException: Can not construct instance of at.uniqa.slsi.svc.model.Mandant$MandantCode from String value 'XXX': value not one of declared Enum instance names at [Source:....
Есть ли способ программно проверить пользовательский запрос, предоставив специальное сообщение об ошибке для каждого недопустимого поля? Я хотел бы отправить клиенту верный код состояния HTTP 200 плюс некоторую структуру содержимого JSON, описывающую природу ошибки.
Спасибо и брат: Алекс