Перейти к основному содержимому
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя
Начало работы

Marshal

Общее описание

Трансформационные блоки Marshal и Unmarshal используются для преобразования сообщений из одного формата в другой с помощью различных методов. Одним из таких методов является форматирование данных, в котором используются маршалинг и демаршалинг.

  • Marshal – преобразует тело сообщения (например, объект Java) в двоичный или текстовый формат, готовый к передаче по сети.

  • Unmarshal – преобразует данные в двоичном или текстовом формате (например, полученные по сети) в объект Java или в другое представление в соответствии с используемым форматом данных.

Блок Marshal может использоваться в качестве:

  • блока-обработчика.

Блок-обработчик предназначен для управления, проверки и преобразования данных, которые используются в контексте потока.

Настройка блока

В данном разделе описаны параметры блока Marshal, которые необходимо заполнить при его настройке.

Базовые параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
FormatformatОбязательный параметр
Формат преобразуемых данных
Возможные значения:
  • asn1
  • avro
  • barcode
  • beanio
  • bindy
  • jacksonXml
  • base64
  • json
  • jsonApi
  • csv
  • zipFile
  • soap
asn1Список

asn1

В данном подразделе описаны параметры для формата asn1, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Unmarshal TypeunmarshalTypeКласс, который применяется при демаршалинге.Строка
Using IteratorusingIteratorЕсли файл asn1 содержит более одной записи, установка значения True для этого параметра позволяет работать с блоком Split для разделения данных с помощью итератора в потоковом режиме.FalseЛогическое значение

avro

В данном подразделе описаны параметры для формата avro, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
LibrarylibraryОпределяет, какую библиотеку Avro использовать.
Возможные значения:
  • Jackson
  • ApacheAvro
Список
Instance Class NameinstanceClassNameИмя класса, который будет использоваться для маршалинга и демаршалинга.Строка
Use Default Object MapperuseDefaultObjectMapperОпределяет, нужно ли искать и использовать стандартный Jackson ObjectMapper из реестра.FalseЛогическое значение
Json ViewjsonViewПри маршалинге POJO в JSON может потребоваться исключить определённые поля из вывода. С помощью Jackson для этого можно использовать JSON‑представления (views). Данный параметр указывает на класс, содержащий аннотации JsonView.Строка
Use ListuseListОпределяет, следует ли при демаршалинге формировать List из Map либо из POJO.FalseЛогическое значение
Allow Unmarshall TypeallowUnmarshalTypeЕсли включено, Jackson может попытаться использовать заголовок CamelJacksonUnmarshalType при демаршалинге. Следует включать только при необходимости.FalseЛогическое значение
Content Type HeadercontentTypeHeaderОпределяет, должен ли формат данных устанавливать заголовок Content-Type с типом из формата данных (например, application/xml для XML или application/json для JSON).FalseЛогическое значение
Object MapperobjectMapperПозволяет найти и использовать существующий ObjectMapper с указанным ID при работе с Jackson.Строка
Auto Discover Object MapperautoDiscoverObjectMapperЕсли установлено значение True, Jackson будет искать ObjectMapper в реестре для использования.FalseЛогическое значение
Enable FeaturesenableFeaturesНабор функций, которые нужно включить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую.Строка
Disable FeaturesdisableFeaturesНабор функций, которые нужно отключить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую.Строка
Allow Jms TypeallowJmsTypeДля пользователей JMS: разрешает использовать заголовок JMSType из спецификации JMS, чтобы указать полное имя класса (FQN), в который нужно выполнить демаршалинг.FalseЛогическое значение
Collection TypecollectionTypeСсылка на пользовательский тип коллекции, который нужно найти в реестре для использования. Редко используемый параметр, позволяет применять типы коллекций, отличные от стандартных на основе java.util.Collection.Строка
Module Class NamesmoduleClassNamesПозволяет использовать пользовательские модули Jackson (com.fasterxml.jackson.databind.Module), указав их полные имена классов (FQN) в виде строки. Несколько классов можно перечислить через запятую.Строка
Module RefsmoduleRefsПозволяет использовать пользовательские модули Jackson, на которые есть ссылки в реестре системы. Несколько модулей можно перечислить через запятую.Строка
TimezonetimezoneЕсли задано, Jackson будет использовать указанный часовой пояс при маршалинге/демаршалинге.Строка
Auto Discover Schema ResolverautoDiscoverSchemaResolverЕсли не отключён, будет выполнен поиск SchemaResolver в реестре.FalseЛогическое значение
Schema ResolverschemaResolverОпциональный резолвер схемы, используемый для поиска схем данных, передаваемых в процессе работы.Строка

barcode

В данном подразделе описаны параметры для формата barcode, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Barcode FormatbarcodeFormatФормат штрихкода (например, QR-Code).Строка
Image TypeimageTypeТип изображения штрихкода, (например, png).Строка
WidthwidthШирина штрихкода.Целое число
HeightheightВысота штрихкода.Целое число

beanio

В данном подразделе описаны параметры для формата beanio, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
MappingmappingОбязательный параметр
Файл маппинга BeanIO. По умолчанию загружается из classpath. Можно указать префикс, чтобы обозначить, откуда следует загрузить файл маппинга.
Возможные значения:
  • file:
  • http:
  • classpath:
Строка
Stream NamestreamNameОбязательный параметр
Имя потока, который будет использоваться.
Строка
Ignore Unidentified RecordsignoreUnidentifiedRecordsОпределяет, нужно ли игнорировать неидентифицированные записи.FalseЛогическое значение
Ignore Unexpected RecordsignoreUnexpectedRecordsОпределяет, нужно ли игнорировать неожиданные записи.FalseЛогическое значение
Ignore Invalid RecordsignoreInvalidRecordsОпределяет, нужно ли игнорировать недопустимые (некорректные) записи.FalseЛогическое значение
EncodingencodingКодировка (набор символов), которая будет использоваться.Строка
Bean Reader Error Handler TypebeanReaderErrorHandlerTypeПозволяет использовать пользовательский обработчик ошибок (org.apache.camel.dataformat.beanio.BeanIOErrorHandler) при парсинге. Нужно указать полное имя класса обработчика. Обратите внимание: при использовании пользовательского обработчика ошибок параметры ignoreUnidentifiedRecords, ignoreUnexpectedRecords и ignoreInvalidRecords могут не применяться.Строка
Unmarshal Single ObjectunmarshalSingleObjectОпределяет, будет ли демаршалинг выполняться как для списка объектов (режим по умолчанию) или только для одного объекта. Второй вариант предназначен для особых сценариев, когда BeanIO сопоставляет сообщение с одним POJO‑объектом.FalseЛогическое значение

base64

В данном подразделе описаны параметры для формата base64, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Line LengthlineLengthПозволяет задать максимальную длину строки для закодированных данных.Целое число
Line SeparatorlineSeparatorПозволяет задать разделители строк. По умолчанию используются символы новой строки.Строка
Url SafeurlSafeПри кодировании вместо символов + и / используются - и _ соответственно. Параметр применяется только к операциям кодирования; при декодировании оба режима обрабатываются автоматически.FalseЛогическое значение

bindy

В данном подразделе описаны параметры для формата bindy, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
TypetypeОбязательный параметр
Тип формата данных для Bindy: определяет, будет ли использоваться CSV, фиксированная ширина полей или формат «ключ‑значение».
Возможные значения:
  • Csv
  • Fixed
  • KeyValue
CsvСписок
Class TypeclassTypeИмя класса модели, который будет использоваться для маппинга данных.Строка
Allow Empty StreamallowEmptyStreamРазрешает пустые потоки в процессе unmarshal. Если значение true, при передаче тела сообщения без записей исключение не формируется.FalseЛогическое значение

json

В данном подразделе описаны параметры для формата json, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
LibrarylibraryОбязательный параметр
Определяет, какую библиотеку json использовать.
Возможные значения:
  • Fastjson
  • Gson
  • Jackson
  • Johnzon
  • Jsonb
Список
Object MapperobjectMapperПозволяет найти и использовать существующий ObjectMapper с указанным ID при работе с Jackson.Строка
Use Default Object MapperuseDefaultObjectMapperОпределяет, нужно ли искать и использовать стандартный Jackson ObjectMapper из реестра.FalseЛогическое значение
Auto Discover Object MapperautoDiscoverObjectMapperЕсли установлено значение True, Jackson будет искать ObjectMapper в реестре для использования.FalseЛогическое значение
Naming StrategynamingStrategyЕсли задано, Jackson будет использовать указанную стратегию именования свойств.
Возможные значения:
  • LOWER_CAMEL_CASE
  • LOWER_DOT_CASE
  • LOWER_CASE
  • KEBAB_CASE
  • SNAKE_CASE
  • UPPER_CAMEL_CASE
Список
Date Format PatterndateFormatPatternЗадаёт формат даты при маршалинге или демаршалинге полей типа Date в JSON (используется с Gson).Строка
Auto Discover Schema ResolverautoDiscoverSchemaResolverЕсли не отключён, будет выполнен поиск SchemaResolver в реестре.FalseЛогическое значение
Schema ResolverschemaResolverОпциональный резолвер схемы, используемый для поиска схем данных, передаваемых в процессе работы.Строка
Module RefsmoduleRefsПозволяет использовать пользовательские модули Jackson, на которые есть ссылки в реестре системы. Несколько модулей можно перечислить через запятую.Строка
TimezonetimezoneЕсли задано, Jackson будет использовать указанный часовой пояс при маршалинге/демаршалинге.Строка
Pretty PrintprettyPrintВключает форматированный (красивый) вывод данных.FalseЛогическое значение
Unmarshal TypeunmarshalTypeКласс, который применяется при демаршалинге.Строка
Use ListuseListОпределяет, следует ли при демаршалинге формировать List из Map либо из POJO.FalseЛогическое значение
Allow Unmarshall TypeallowUnmarshalTypeЕсли включено, Jackson может попытаться использовать заголовок CamelJacksonUnmarshalType при демаршалинге. Следует включать только при необходимости.FalseЛогическое значение
Content Type HeadercontentTypeHeaderОпределяет, должен ли формат данных устанавливать заголовок Content-Type с типом из формата данных (например, application/xml для XML или application/json для JSON).FalseЛогическое значение
Json ViewjsonViewПри маршалинге POJO в JSON может потребоваться исключить определённые поля из вывода. С помощью Jackson для этого можно использовать JSON‑представления (views). Данный параметр указывает на класс, содержащий аннотации JsonView.Строка
IncludeincludeПозволяет задать правило обработки полей со значением null при маршалинге POJO в JSON. Например, значение NON_NULL исключает поля с null из итогового JSON.Строка
Allow Jms TypeallowJmsTypeДля пользователей JMS: разрешает использовать заголовок JMSType из спецификации JMS, чтобы указать полное имя класса (FQN), в который нужно выполнить демаршалинг.FalseЛогическое значение
Collection TypecollectionTypeСсылка на пользовательский тип коллекции, который нужно найти в реестре для использования. Редко используемый параметр, позволяет применять типы коллекций, отличные от стандартных на основе java.util.Collection.Строка
Module Class NamesmoduleClassNamesПозволяет использовать пользовательские модули Jackson (com.fasterxml.jackson.databind.Module), указав их полные имена классов (FQN) в виде строки. Несколько классов можно перечислить через запятую.Строка
Module RefsmoduleRefsПозволяет использовать пользовательские модули Jackson, на которые есть ссылки в реестре системы. Несколько модулей можно перечислить через запятую.Строка
Enable FeaturesenableFeaturesНабор функций, которые нужно включить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую.Строка
Disable FeaturesdisableFeaturesНабор функций, которые нужно отключить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую.Строка

jacksonXml

В данном подразделе описаны параметры для формата jacksonXml, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Pretty PrintprettyPrintВключает форматированный (красивый) вывод данных.FalseЛогическое значение
IncludeincludeПозволяет задать правило обработки полей со значением null при маршалинге POJO в JSON. Например, значение NON_NULL исключает поля с null из итогового JSON.Строка
Enable FeaturesenableFeaturesНабор функций, которые нужно включить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую.Строка
Disable FeaturesdisableFeaturesНабор функций, которые нужно отключить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую.Строка
Xml MapperxmlMapperПозволяет найти и использовать существующий XmlMapper с указанным ID.Строка
Allow Jms TypeallowJmsTypeДля пользователей JMS: разрешает использовать заголовок JMSType из спецификации JMS, чтобы указать полное имя класса (FQN), в который нужно выполнить демаршалинг.FalseЛогическое значение
Collection TypecollectionTypeСсылка на пользовательский тип коллекции, который нужно найти в реестре для использования. Редко используемый параметр, позволяет применять типы коллекций, отличные от стандартных на основе java.util.Collection.Строка
TimezonetimezoneЕсли задано, Jackson будет использовать указанный часовой пояс при маршалинге/демаршалинге.Строка
Enable Jaxb Annotation ModuleenableJaxbAnnotationModuleОпределяет, нужно ли включать модуль аннотаций JAXB при работе с Jackson. При включении Jackson сможет использовать аннотации JAXB.FalseЛогическое значение
Module Class NamesmoduleClassNamesПозволяет использовать пользовательские модули Jackson (com.fasterxml.jackson.databind.Module), указав их полные имена классов (FQN) в виде строки. Несколько классов можно перечислить через запятую.Строка
Module RefsmoduleRefsПозволяет использовать пользовательские модули Jackson, на которые есть ссылки в реестре системы. Несколько модулей можно перечислить через запятую.Строка

jsonApi

В данном подразделе описаны параметры для формата jsonApi, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Data Format TypesdataFormatTypesКлассы, которые учитываются при маршалинге. Несколько классов можно перечислить через запятую.Строка
Main Format TypemainFormatTypeКласс, который учитывается при демаршалинге.Строка

soap

В данном подразделе описаны параметры для формата soap, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Context PathcontextPathОбязательный параметр
Имя пакета, в котором расположены JAXB‑классы для маппинга данных.
Строка
EncodingencodingКодировка, используемая для обработки данных; позволяет переопределить значение по умолчанию.Строка
VersionversionВерсия протокола SOAP.
Возможные значения префиксов:
  • 1.1
  • 1.2
1.1Списка
SchemaschemaПуть к схеме для валидации данных.
Возможные значения:
  • classpath:
  • file:
  • http:
Для указания нескольких файлов схем используйте разделитель ,.
1.1Строка

zipFile

В данном подразделе описаны параметры для формата zipFile, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Using IteratorusingIteratorЕсли в ZIP‑архиве более одной записи, при значении true позволяет использовать Splitter EIP для разделения данных в потоковом режиме с применением итератора.FalseЛогическое значение
Allow Empty DirectoryallowEmptyDirectoryЕсли в ZIP‑архиве более одной записи, при значении true итератор будет доступен даже для пустой директории внутри архива.FalseЛогическое значение
Preserve Path ElementspreservePathElementsПри значении true сохраняет элементы пути из имени файла внутри ZIP‑архива (т. е. структуру вложенных директорий).FalseЛогическое значение
Max Decompressed SizemaxDecompressedSizeМаксимальный размер распакованного ZIP‑архива (в байтах). При превышении этого значения будет выброшено исключение IOException. Значение -1 отключает ограничение.1073741824 (1 ГБ)Целое чесло

csv

В данном подразделе описаны параметры для формата csv, которые необходимо заполнить при настройке блока.

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
DelimiterdelimiterУстанавливает разделитель, который будет использоваться.Строка
Header DisabledheaderDisabledИспользуется для отключения заголовков.FalseЛогическое значение
Allow Missing Column NamesallowMissingColumnNamesОпределяет, разрешено ли отсутствие имён столбцов.FalseЛогическое значение
Ignore Empty LinesignoreEmptyLinesОпределяет, нужно ли игнорировать пустые строки.FalseЛогическое значение
Ignore Surrounding SpacesignoreSurroundingSpacesОпределяет, нужно ли игнорировать пробелы в начале и в конце значений.FalseЛогическое значение
Quote DisabledquoteDisabledИспользуется для отключения кавычек.FalseЛогическое значение
QuotequoteУстанавливает символ кавычки, который будет использоваться.Строка
Record Separator DisabledrecordSeparatorDisabledИспользуется для отключения разделителя записей.FalseЛогическое значение
Record SeparatorrecordSeparatorЗадаёт разделитель записей.Строка
Skip Header RecordskipHeaderRecordОпределяет, нужно ли пропускать строку с заголовком.FalseЛогическое значение
Quote ModequoteModeУстанавливает режим использования кавычек.
Возможные значения:
  • ALL
  • ALL_NON_NULL
  • MININAL
  • NON_NUMERIC
  • NONE
Список
Ignore Header CaseignoreHeaderCaseОпределяет, нужно ли игнорировать регистр при обращении к именам заголовков.FalseЛогическое значение
TrimtrimОпределяет, нужно ли удалять пробелы в начале и в конце значений.FalseЛогическое значение
Trailing DelimitertrailingDelimiterОпределяет, нужно ли добавлять завершающий разделитель.FalseЛогическое значение
Use MapsuseMapsОпределяет, должны ли при демаршалинге для значений строк формироваться карты (HashMap) вместо списков. Для работы требуется наличие заголовков (заданных или собранных автоматически).FalseЛогическое значение
Use Ordered MapuseOrderedMapОпределяет, должны ли при демаршалинге для значений строк формироваться упорядоченные карты (LinkedHashMap) вместо списков. Для работы требуется наличие заголовков (заданных или собранных автоматически).FalseЛогическое значение
Format NameformatNameИмя формата, который будет использоваться. По умолчанию - CSVFormat.DEFAULT.
Возможные значения:
  • DEFAULT
  • EXCEL
  • INFORMIX_UNLOAD
  • INFORMIX_UNLOAD_CSV
  • MYSQL
  • RFC4180
DEFAULTСтрока
Comment Marker DisabledcommentMarkerDisabledОтключает маркер комментариев для базового формата.FalseЛогическое значение
Comment MarkercommentMarkerЗадаёт маркер комментариев для базового формата.Строка
Escape DisabledescapeDisabledИспользуется для отключения применения экранирующего символа.FalseЛогическое значение
EscapeescapeЗадаёт экранирующий символ, который будет использоваться.Строка
Null String DisablednullStringDisabledИспользуется для отключения обработки строк со значением null.FalseЛогическое значение
Null StringnullStringЗадаёт строку, которая будет интерпретироваться как значение null.Строка
Lazy LoadlazyLoadОпределяет, должен ли демаршалинг формировать итератор, считывающий строки «на лету», или все строки должны быть считаны единовременно.FalseЛогическое значение
Capture Header RecordcaptureHeaderRecordОпределяет, нужно ли при демаршалинге захватить запись с заголовком и сохранить её в заголовке сообщения.FalseЛогическое значение

Расширенные параметры

Название в UIНазваниеОписаниеЗначение по умолчаниюТип данных
DisableddisabledОпределяет будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться.FalseЛогическое значение