Обработка ошибок в SOAP веб-сервисе на стороне сервера

Обработка ошибок (exception) soap веб-сервиса на стороне сервера.

Используемые технологии и библиотеки
  • Apache CXF 3.1.6
  • Spring MVC 4.3.0.Release

1. Описание задачи

Создать и обработать исключение на стороне сервера при использовании SOAP веб-сервиса. Для этой статьи есть описание клиентской стороны, тестирующий данный код.

2. Структура проекта

wsExceptionStructrure

Проект основан на начальной статье — SOAP java веб сервис. Пример Hello World example. Здесь добавлен пакет exceptions и три класса в нем (ExceptionTraceMyWebserviceExceptionWSException). Так же добавлен новый метод в soap веб-сервисе класса HelloSoap, способный выбрасывать исключение.

3. Собественный Exception

Для обработки исключений, которые могут возникать при работе с нашим soap веб-сервисом были написаны три класса. Разумеется можно обрабатывать стандартные Java исключения, но часто они бывают не информативны или вообще не понятны человеку, далекому от Java разработки и тем более вашего сервиса. Поэтому частой практикой является создание собственных исключений, которые будут выдавать какое-либо осмысленное сообщение о возникшей ошибке при работе с вашим сервисом.

Первый класс ExceptionTrace содержит в себе одно поля, которое будет содержать трейс ошибки.

Второй класс WSException будет основным родителем для других ошибок нашего сервиса. Он наследует класс Exception.

Как видите он имеет несколько стандартных конструкторов и два самописных метода, которые будут выдавать трейс возникшей ошибки в читаемом виде.

Третий класс MyWebserviceException является тем самым исключением, которое будет выбрасываться одним из методов нашего веб-сервиса.

Здесь класс просто наследует вышеописанный класс-исключение. В реальных проектах на месте класса MyWebserviceException обычно находится класс, описывающий конкретное исключение. Например, это может быть класс DocumentNotFoundException, который будет содержать текст сообщения «Документы по вашему запросу не найдены» и возникать, например, при запросе документов из вашей базы данных через API.

4. SOAP Сервис и Exception

В наш soap веб-сервис был добавлен метод, который всегда генерирует исключение.

Реализация этого интерфейса выглядит следующим образом:

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

 

Исходные коды

SOAP Server Exception

Share Button
4
1384 Total Views 3 Views Today

Добавить комментарий