CXF

Поддерживаются как производитель, так и потребитель.

Компонент CXF предоставляет интеграцию с Apache CXF для подключения к JAX-WS сервисам, размещенным в CXF.

Пользователям Maven необходимо добавить следующую зависимость в свой pom.xml для этого компонента:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-cxf-soap</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

URI format

Для этого endpoint существуют два формата URI: cxfEndpoint и someAddress.

cxf:bean:cxfEndpoint[?options]

cxfEndpoint представляет собой bean ID, который указывает на компонент в реестре Spring. В этом случае параметры endpoint задаются в конфигурации bean.

cxf://someAddress[?options]

someAddress указывает на адрес конечной точки CXF. В этом формате URI большинство параметров endpoint задаются через опции.

Для любого из вышеуказанных стилей можно добавить параметры к URI следующим образом.

cxf:bean:cxfEndpoint?wsdlURL=wsdl/hello_world.wsdl&amp;dataFormat=PAYLOAD

Configuring Options

Компоненты настраиваются на двух отдельных уровнях:

  • component level

  • edpoint level

Configuring Component Options

На уровне компонента задаются основные и общие настройки, которые впоследствии наследуются endpoints. Это самый высокий уровень конфигурации.

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

Некоторые компоненты имеют всего несколько параметров, в то время как у других их может быть много. Поскольку компоненты обычно имеют предварительно настроенные значения по умолчанию, которые используются в большинстве случаев, вам может понадобиться настроить только несколько параметров компонента или вообще ничего не настраивать.

Компоненты можно настроить с использованием:

  • Component DSL.

  • Конфигурационного файла (application.properties, *.yaml files, etc).

  • Напрямую в Java code.

Configuring Endpoint Options

Обычно больше времени уходит на настройку endpoints, так как они обладают множеством параметров. Эти параметры позволяют настроить поведение endpoint в соответствии с вашими потребностями. Кроме того, параметры делятся на категории в зависимости от того, используется ли endpoint как потребитель (from), как производитель (to) или в обеих ролях.

Настройка endpoints чаще всего выполняется непосредственно в URI endpoint в виде параметров пути и запроса. Также вы можете использовать Endpoint DSL и DataFormat DSL как типобезопасный способ настройки endpoints и форматов данных в Java.

Хорошей практикой при настройке параметров является использование Property Placeholders.

Property placeholders предоставляют несколько преимуществ:

  • Помогают избежать использования жестко закодированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.

  • Позволяют вынести конфигурацию за пределы кода.

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

Component properties

Address

  • Адрес для публикации сервиса.

  • По умолчанию:

  • Тип: String

  • Тип: Bean Id

  • Для поиска уже настроенного CxfEndpoint. Необходимо использовать префикс bean.

  • String

Binding Id

  • Binding Id идентификатор привязки для используемой модели сервиса.

  • По умолчанию:

  • Тип: String

  • Тип: Data Format

  • Типы данных сообщений, поддерживаемые CXF endpoint.

    Возможные значения:

    • PAYLOAD

    • RAW

    • MESSAGE

    • CXF_MESSAGE

    • POJO

  • POJO

  • DataFormat

Logging Feature Enabled

  • Этот параметр включает функцию CXF Logging Feature, которая записывает входящие и исходящие SOAP-сообщения в логи.

  • По умолчанию: false

  • Тип: boolean

Logging Size Limit

  • Устанавливает лимит на общий размер данных в байтах, который логгер может вывести при активированной функции логирования. Для снятия ограничения используйте значение -1.

  • По умолчанию: 49152

  • Тип: int

Port Name

  • Имя endpoint, которую реализует данный сервис, оно соответствует wsdl:portname. Формат: ns:PORT_NAME, где ns -- это допустимый префикс пространства имен в данном контексте.

  • По умолчанию:

  • Тип: String

  • Тип: Published Endpoint Url

  • Данная настройка позволяет заменить endpointUrl, указанный в WSDL, доступный через адрес сервиса с параметром url plus wsd.

  • String

Service Class

  • Класс SEI (Service Endpoint Interface), который может использовать аннотацию JSR181 или быть без нее.

  • По умолчанию:

  • Тип: Class

  • Тип: Service Name

  • Название сервиса, реализуемого данным компонентом, соответствует wsdl:servicename.

  • String

Skip Fault Logging

  • Данная опция управляет тем, пропустит ли PhaseInterceptorChain логирование ошибки (Fault), которую она перехватывает.

  • По умолчанию: false

  • Тип: boolean

Wrapped Style

  • Стиль WSDL, который описывает, как параметры представлены в теле SOAP. Если значение установлено в false, CXF выберет стиль document-literal unwrapped. Если значение установлено в true, CXF выберет стиль document-literal wrapped.

  • По умолчанию:

  • Тип: Boolean

  • Тип: Wsdl URL

  • The location of the WSDL. Can be on the classpath, file system, or be hosted remotely.

    Местоположение WSDL. Это может быть в classpath, file system или hosted remotely.

  • String

Component security properties

Password

  • Этот параметр используется для настройки информации для базовой аутентификации с паролем для CXF клиента.

  • По умолчанию:

  • Тип: String

  • Тип: Username

  • Этот параметр используется для настройки информации для базовой аутентификации с именем пользователя для CXF клиента.

  • String

Component advanced properties

Allow Streaming

  • Этот параметр управляет тем, будет ли компонент CXF, работая в PAYLOAD mode, парсить входящие сообщения в DOM Elements с помощью DOM или сохранять их как объект javax.xml.transform.Source, что возможно для потоковой обработки.

  • По умолчанию:

  • Тип: Boolean

  • Тип: Bridge Error Handler

  • Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.

    Важно: Это возможно только в том случае, если сторонний компонент позволяет Camel получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают исключения только внутренне, из-за чего использование bridgeErrorHandler становится невозможным. В некоторых случаях мы можем доработать компонент Camel, чтобы интегрировать его со сторонним компонентом и сделать такую возможность доступной в будущих выпусках. По умолчанию потребитель использует org.apache.camel.spi.ExceptionHandler для обработки исключений, которые логируются с уровнем WARN или ERROR и игнорируются.

  • false

  • boolean

Bus

  • Для конфигурации пользовательского CXF Bus.

  • По умолчанию:

  • Тип: Bus

  • Тип: Continuation Timeout

  • Эта опция устанавливает тайм-аут для продолжения работы CXF, который может быть применен по умолчанию в CxfConsumer, если сервер CXF использует транспорт Jetty или Servlet.

  • 30000

  • long

Cxf Binding

  • Эта опция используется для настройки пользовательского CxfBinding, чтобы управлять связью между Camel Message и Camel Message.

  • По умолчанию:

  • Тип: CxfBinding

  • Тип: Cxf Configurer

  • Эта опция позволяет применить реализацию org.apache.camel.component.cxf.CxfEndpointConfigurer, которая поддерживает программную настройку CXF endpoint. Пользователь может настроить сервер и клиент CXF, реализовав метод configure{ServerClient} в CxfEndpointConfigurer.

  • CxfConfigurer

Default Bus

  • Будет использовать bus по умолчанию при автоматическом создании bus CXF endpoint.

  • По умолчанию: false

  • Тип: boolean

Exception Handler

  • Позволяет потребителю использовать собственный ExceptionHandler.

    Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.

  • По умолчанию:

  • Тип: ExceptionHandler

  • Тип: Exchange Pattern

  • Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).

    Возможные значения:

    • InOnly

    • InOut

  • ExchangePattern

Header Filter Strategy

  • Чтобы применить собственную стратегию фильтрации заголовков org.apache.camel.spi.HeaderFilterStrategy для фильтрации заголовков сообщений Camel.

  • По умолчанию:

  • Тип: HeaderFilterStrategy

  • Тип: Merge Protocol Headers

  • Требуется ли объединение заголовков протокола. Включение этой опции сделает передачу заголовков между Camel и CXF более консистентной и схожей.

  • false

  • boolean

Mtom Enabled

  • Для включения MTOM (attachments. Это требует использования формата данных POJO или PAYLOAD.

  • По умолчанию: false

  • Тип: boolean

Properties

  • Для установки дополнительных параметров CXF с использованием пар ключ/значение из Map. Например, чтобы включить трассировки стека в SOAP faults, properties.faultStackTraceEnabled=true.

  • По умолчанию:

  • Тип: Map

  • Тип: Schema Validation Enabled

  • Включить проверку схемы для запроса и ответа. Отключено по умолчанию для улучшения производительности.

  • false

  • Boolean

Skip Payload Message Part Check

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

  • По умолчанию: false

  • Тип: boolean