Java клиент сервер soap

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 ).

Читайте также:  Использование языка программирования javascript

Для реализации веб-сервиса используется реализация 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.

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]

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

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

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Simple examples of SOAP JAX-WS servers and clients for Maven and Java 8

LeonisX/soap-examples

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Simple examples of SOAP JAX-WS servers and clients for Maven and Java 8

Простые примеры серверов и клиентов SOAP JAX-WS для Maven и Java 8

Серия примеров, рассчитанная на современного программиста, не знакомого с SOAP , WSDL и JAX-WS . Рассчитана на быстрое знакомство с технологией, без глубокого погружения в теоретические дебри.

Упор делается на Maven и, где используется контейнер, то WildFly ( JBoss ).

Любой из модулей можно использовать как каркас для создания своего проекта или основу для своих экспериментов.

Читать следует в таком порядке:

  • Основы JAX-WS и SOAP для современного программиста
  • SOAP HelloWorld для Java SE (soap-java-se-document)
  • SOAP HelloWorld для Java SE (RPC Style) (soap-java-se-rpc)
  • Теория: от XML до стилей сообщений SOAP
  • SOAP HelloWorld для Java EE (soap-java-ee)
  • Правила присвоения имён SOAP

Intermediary

  • Динамическое подключение к серверу
  • SOAP HelloWorld для Java SE с BASIC Authentication (soap-java-se-password-auth)
  • SOAP HelloWorld для Java EE с BASIC Authentication (soap-java-ee-basic-auth, soap-java-ee-basic-auth-client)
  • Apache CXF
  • SOAP HelloWorld для Apache CXF (POJO) (soap-apache-cxf-pojo)
  • SOAP HelloWorld для Apache CXF (JAX-WS) (soap-apache-cxf-jax-ws)
  • Apache CXF client as EJB (soap-apache-cxf-ejb-client, soap-apache-cxf-ejb-server)
  • Утилиты wsgen, wsimport, xcj, java2ws, wsdl2java

На этом всё, физически больше нет времени писать, жду любые замечания и вопрос на почту.

About

Simple examples of SOAP JAX-WS servers and clients for Maven and Java 8

Источник

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