SOAP java веб сервис. Пример Hello World example
Пример Java web-service с использованием технологии SOAP.
Используемые технологии и библиотеки
1. Описание задачи
Создать простейший веб-сервис с использованием технологии SOAP. Написать простой класс веб сервиса на стороне сервера и обратиться к нему с помощью кода клиентской части.
2. Структура проекта
Создан один класс, описывающий SOAP веб-сервис ( HelloSoap ). Для демонстрации вывода Java объекта в xml формате используются два класса ( Goods , Document ). Для обращение к SOAP веб-сервису была написана простая клиентская часть, которая описана в классе JavaStudyWS .
3. pom.xml
Для реализации веб-сервиса используется библиотека Apache CXF.
xsi : schemaLocation = «http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd» >
4. web.xml
Библиотека Spring MVC используется исключительно для запуска приложения и удобного описания SOAP веб-сервиса. Использование Spring не является обязательным и приложение запускается с помощью небольшого метода с публикацией soap сервиса. Файл с настройками application-context.xml (с описанием SOAP веб-сервиса) добавлен в дескриптор развертывания. Так же был добавлен mvc-config.xml (не используется) в параметры инициализации init-param диспетчера сервлетов, чтобы приложение не ругалось на отсутствие файла с настройками ( dispatcher-servlet.xml ).
Для реализации веб-сервиса используется реализация JAX-WS API — Apache CXF. Создан сервлет и задан шаблон URL по которому он будет срабатывать ( /soap/* ).
5. application-context.xml
В файле конфигурации спринг описывается один soap веб сервис — его id, адрес и реализующий класс.
Здесь прописан веб сервис с >. Он будет доступен по ссылке, которая формируется из пути сервера + маппинг сервлета + адреса обработки сервиса (в данном случае совпадает с id).
6. SOAP сервис
Был создан простейший веб сервис по технологии SOAP.
Описание SOAP веб-сервиса находится в интерфейсе WebserviceSEI (service endpoint interface). Аннотация @WebMethod не является обязательной, но в ней можно прописывать дополнительные параметры и свойства для веб-сервиса.
@WebMethod //annotation optional and is mainly used to provide a name attribute to the public method in wsdl
Реализация находится в классе HelloSoap :
В аннотации указан интерфейс, которые описывает веб-сервис, а также имя этого сервиса. Реализованы тривиальные методы, которые позволят продемонстрировать работу soap сервиса.
7. Модель данных
Созданы два демонстрационных класса, которые будут преобразовываться в xml формат и передаваться клиенту. У классов задана аннотация @XmlRootElement с помощью которой присваивается имя для корневого xml элемента в ответе (см. далее запуск приложения).
8. SOAP клиент
Для тестирования нашего сервиса был создан код, имитирующий клиентскую сторону.
С помощью фабрики JaxWsProxyFactoryBean создается soap веб-сервис доступные по адресу soapServiceURL. Далее вызвается один из методов, описанных в интерфейсе сервиса.
9. Запуск веб сервиса
После запуска веб сервиса его описание можно посмотреть по ссылке http://localhost:8080/soap/webserviceSEI?wsdl.
Если запустить main метод класса JavaStudyWS , то мы увидим ответ веб-сервиса в консоли.
SOAP веб-сервисы удобно тестировать с помощью утилиты SoapUI.
Добавляем новый SOAP проект.
Указываем путь к wsdl описанию нашего сервиса.
Запускаем метод веб-сервиса.
Таким образом можно создать простейший SOAP веб сервис java.
Исходный код
5 thoughts on “ SOAP java веб сервис. Пример Hello World example ”
«Для реализации веб-сервиса используется реализация Jax-RS API — Apache CXF. Создан сервлет и задан шаблон URL по которому он будет срабатывать (/rest/*).» — наверное, ошибка копи паста из примера рестфул вс.
Не работает. Запускаю, а мне в ответ Caused by: java.net.ConnectException: ConnectException invoking http://localhost:8080/soap/webserviceSEI: Connection refused: connect
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
Из всего стектрейса ясно что проблема с
Caused by: java.net.ConnectException: ConnectException invoking http://localhost:8080/soap/webserviceSEI: Connection refused: connect
А что в файле mvc — config . xml? без него не запускается 18-May-2017 22:16:06.335 SEVERE [localhost-startStop-1] org.springframework.web.context.ContextLoader.initWebApplicationContext Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/config/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/config/applicationContext.xml]
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.