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&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