В настоящее время я добавляю функциональность в приложение JSF / Richfaces, и теперь мы интегрируемся с внешними веб-службами.
Действия, выполняемые с услугами, включают: получение пользователя, получение учетной записи, обновление пользователя, обновление учетной записи, создание пользователя, создание учетной записи.
Эти службы, наряду с неожиданными исключениями soapfaultex, могут возвращать коды ошибок в своих типах ответов. В основном для сбоев по типу: логин уже существует, пароль не соответствует критериям, номер аккаунта уже существует, и пользователь не найден.
Вызовы выглядят следующим образом: BackingBean> Класс уровня менеджера (в основном, сквозной)> Клиент веб-службы (выполняет фактический вызов WS). Для действий GET идентификатор (имя пользователя или номер учетной записи) передается вниз, а объект Account или User - обратно. Обновления распространяются на объекты User / Account, как и Creates.
Каков наилучший способ вернуть эти ошибки обратно в бэк-бин, чтобы я мог обрабатывать их через пользовательский интерфейс?
- Конечно, я мог бы проверять коды ошибок в ответе, генерировать исключение и продолжать отбрасывать его компоненту поддержки, где я бы обрабатывал его там.
- Я мог бы реализовать тип Result, который будет содержать тип ошибки и POJO / DTO, которые я заполнял из службы.
- Один из моих коллег порекомендовал использовать декоратор для украшения объектов USER или ACCOUNT с помощью валидаторов, которые мне также нужно было бы создать. По сути, я предполагаю, что мой декоратор будет просто содержать пользовательские типы ошибок, а Validate () просто проверит, если (List! = Null &&! (Size> 0)). Правильно?
Что вы думаете о предлагаемых методах? № 1 - самый простой, № 2 - более элегантный и простой, № 3 - самый «жесткий» для меня, поскольку я никогда не использовал шаблон декоратора. Тем не менее, № 3 кажется наиболее элегантным и в то же время самым трудоемким для реализации.
Дайте мне знать, если вам нужно больше разъяснений.
Спасибо, ТАК!