Web service example with java

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, адрес и реализующий класс.

Читайте также:  Html css filter gradient

Здесь прописан веб сервис с >. Он будет доступен по ссылке, которая формируется из пути сервера + маппинг сервлета + адреса обработки сервиса (в данном случае совпадает с 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.

WebserviceWSDL

Если запустить main метод класса JavaStudyWS , то мы увидим ответ веб-сервиса в консоли.

soapRun

SOAP веб-сервисы удобно тестировать с помощью утилиты SoapUI.

Добавляем новый SOAP проект.

SoapUI1

Указываем путь к wsdl описанию нашего сервиса.

SoapUI2

Запускаем метод веб-сервиса.

SoapUI3

Таким образом можно создать простейший SOAP веб сервис java.

Исходный код

Share Button

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]

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

Для отправки комментария вам необходимо авторизоваться.

Источник

Оцените статью