Клиент SOAP-сервиса на основе WSDL

На платформе Entaxy вы можете создать клиентов двух типов: Клиент SOAP-сервиса на основе WSDL (с поддержкой службы аутентификации и авторизации Java (JAAS)) и Клиент REST-сервиса на основе OpenAPI (с поддержкой службы аутентификации и авторизации Java (JAAS) и OAuth авторизации*). Выбор между ними зависит от требований проекта и предпочтений в использовании соответствующих технологий.

*Текущая версия модуля OAuth разработана под сервер авторизации Keycloak, но может быть сконфигурирована под работу с другими серверами авторизации.

Ниже представлено руководство по созданию и настройке SOAP-клиента.

Параметры SOAP-клиента

General

soap general
Название Описание

Factory

Идентификатор используемой фабрики с предустановленным значением (SOAP :: WSDL :: CLIENT).

Object Id

Уникальный идентификатор клиента.

Display name

Отображаемое имя клиента.

Description

Поле для краткого описания.

Redelivery policy

soap redelivery

Настройка обработки ошибок и повторной доставки сообщений. Подробнее ознакомиться можно здесь.

Routes

soap routes
  • AGGREGATOR
    Маршрут для агрегирования нескольких сообщений на основе заданных критериев.

  • QUARTZ
    Маршрут используется для планирования задач с помощью Quartz Scheduler. Он позволяет запускать маршруты на основе расписания, которое можно настроить с помощью Cron выражений или простых интервалов времени.

  • ROUTE-CALLABLE
    Маршрут для выполнения настраиваемых логик и операций, позволяющий вызывать различные функции и взаимодействовать с внешними системами.

  • TIMER
    Маршрут предназначен для создания периодических событий. Он позволяет запускать маршруты через заданные интервалы времени, такие как каждая секунда, минута или час, без необходимости использования внешних планировщиков или триггеров.

Main

soap main
Название Описание

Absolute address

Полный URL адрес публикации SOAP-сервиса в рамках шины по которому будут отправляться запросы.

WSDL schema

Загрузка WSDL файла. Для загрузки нажать "Select" и выбрать предварительно загруженный на платформу WSDL файл. В открывшемся окне выбрать .wsdl файл и нажать кнопку "Select".

Service Full Name

Полное имя выбранного сервиса из WSDL ресурса.

Port

Параметр с указанием порта для выбранного сервиса.

Data Format

Формат данных для обработки:

* POJO: Используется для работы с данными в виде Plain Old Java Objects, что позволяет напрямую работать с Java объектами.

* ORIGIN: Используется для работы с данными в их исходном виде.

MTOM Enabled

Чек-бокс указывающий, включено ли использование MTOM (Message Transmission Optimization Mechanism) для передачи бинарных данных в SOAP-сообщениях.

Schema Validation Enabled

Активация проверки тела запроса на соответствие структуре и формату заданной схемы API.

Operation Router

Редактируемый параметр маршрутизации данных на основе загруженного YAML/JSON файла.

Security

soap security
Название Описание

Auth Password

Пароль используемый для аутентификации.

Auth Username

Имя пользователя используемое для аутентификации.

Ssl Context Parameters

soap ssl context
Название Описание

Ssl Context Parameters

Этот параметр используется для настройки безопасности с помощью SSLContextParameters. Вы можете использовать визуальную конфигурацию с базовыми настройками или, если требуется более точная настройка, создать beans и выбрать опцию "custom".

Header filter

soap header filter
Название Описание

Header Filter Strategy

Для использования пользовательской стратегии фильтрации заголовков org.apache.camel.spi.HeaderFilterStrategy для фильтрации заголовков в сообщениях Camel.

Producer

soap ssl producer
Название Описание

Wrapped

Чекбокс определяет, будет ли продюсер CXF endpoint вызывать операции типа Wrapped.

Default Operation Name

Параметр задает имя операции по умолчанию, которое будет использоваться CxfProducer для вызова удаленного сервиса.

Default Operation Namespace

Параметр задает пространство имен операции по умолчанию, которое будет использоваться CxfProducer для вызова удаленного сервиса.

Lazy Start Producer

Определяет, следует ли откладывать инициализацию продюсера до момента получения первого сообщения. Ленивый запуск позволяет CamelContext и маршрутам запускаться даже в тех случаях, когда немедленная инициализация продюсера может привести к сбою и прервать запуск маршрута. При ленивой инициализации возможные ошибки можно обработать с помощью маршрутизируемых обработчиков ошибок Camel при первом обращении к продюсеру. Следует учитывать, что инициализация и запуск продюсера при первом сообщении могут занять больше времени, что увеличит общее время обработки.

Advanced

soap advanced
Название Описание

Allow Streaming

Чек-бокс определяет, будет ли компонент CXF в режиме PAYLOAD разбирать входящие сообщения в элементы DOM или сохранять данные в виде объекта javax.xml.transform.Source, что в некоторых случаях позволяет использовать потоковую обработку.

Merge Protocol Headers

Чек-бокс определяет, следует ли объединять заголовки протокола. Если чек-бокс активирован, передача заголовков между Camel и CXF становится одинаковой.

Skip Payload Message Part Check

Чек-бокс определяет, следует ли отключить валидацию SOAP-сообщений.

Synchronous

Устанавливает, следует ли строго использовать синхронную обработку, или Camel может использовать асинхронную обработку (если это поддерживается).

Создать клиент

Для создания SOAP-клиента:

  1. Перейдите в раздел Сервисы и Клиенты.

  2. Откройте вкладку Services and Clients.

  3. Нажмите на кнопку "Add Service".

    services and clients
  4. В появившемся окне выберите SOAP-client и нажмите "Next".

    choose factory soap
  5. Заполните необходимые параметры.

    Пример заполнения параметров:

    • General:

      example general soap
      • Object Id: укажите уникальный идентификатор клиента.

    • Раздел Main:

      example main soap
      • Absolute address: укажите полный URL SOAP-сервиса (например, http://localhost:8181/cxf/soap-service), по которому будут отправляться запросы.

      • WSDL schema: загрузите WSDL-файл, описывающий ресурс. На его основе будет создан клиент.

    • Security (при необходимости):

      example security soap
  6. После заполнения всех необходимых параметров нажмите кнопку "Add" для сохранения настроек и создания SOAP-клиента.

    soap client create

После успешного создания SOAP-клиента автоматически создается выходной коннектор клиента.

add connector soap client
connector soap client

После подключения выходного коннектора клиента к профилю системы в параметрах pre-output коннектора отображается конфигурация маршрутов операций, доступных через SOAP-клиент.

diagram soap client
pre output example soap

Она включает:

  1. Тег <m:set-operation> - определяющий вызываемую SOAP-клиентом операцию.

    Пример:

    <m:set-operation>PutPackets</m:set-operation>

Просмотреть список созданных клиентов

  • Перейдите в раздел Сервисы и Клиенты, затем откройте вкладку Services and Clients.

  • На этой вкладке вы увидите таблицу с информацией о созданных клиентах и сервисах.

Таблица содержит следующие столбцы:

  • Name: уникальное имя созданного клиента.

  • Status: текущий статус клиента.
    Например, "Active" или "Resolved".

  • Actions: содержит кнопки для управления клиентом: Start (запуск клиента), Stop (остановка клиента), Edit (редактирование свойств клиента).

    • View Properties: просмотр свойств клиента.

    • Uninstall: удаление клиента.

      client soap actions

      Если вы хотите найти конкретный клиент по имени или статусу, используйте фильтр. Введите имя клиента или выберите нужный статус в соответствующем поле фильтра. Таблица автоматически обновится, чтобы показать только результаты соответствующие поиску.

Остановить клиент

  1. На вкладке Services and Clients в строке соответствующего клиента найдите столбец "Actions", в котором находятся кнопки управления клиентом.

  2. Нажмите кнопку Stop.

  3. Клиент будет остановлен. Появится подтверждающее сообщение о том, что операция выполнена успешно: "Operation Succeeded!".

  4. В столбце "Status" клиента должно отображаться "Resolved", подтверждая успешную остановку.

    stop soap client

Запустить клиент

  1. На вкладке Services and Clients в строке соответствующего клиента найдите столбец "Actions", в котором находятся кнопки управления клиентом.

  2. Нажмите кнопку Start.

  3. Клиент будет запущен. Появится подтверждающее сообщение о том, что операция выполнена успешно: "Operation Succeeded!".

  4. В столбце "Status" клиента должно отображаться "Active", подтверждая успешный запуск.

    start soap client

Удалить клиент

  1. На вкладке Services в строке соответствующего клиента найдите столбец "Actions", в котором находятся кнопки управления клиентом .

  2. Нажмите кнопку Uninstall.

  3. Появится сообщение с просьбой подтвердить удаление клиента. Убедитесь, что вы действительно хотите удалить клиент, так как эту операцию нельзя отменить.

  4. Подтвердите удаление, выбрав Confirm или отмените удаление, выбрав Cancel.

  5. В случае подтверждения появится подтверждающее сообщение о том, что операция выполнена успешно: "Operation Succeeded!".

  6. Клиент удален. Он больше не будет отображаться в списке клиентов.

    uninstall soap client