У меня есть верблюжий маршрут с производителем cxf (Camel v2.10):
<to uri="cxf:bean:myCxfEndpoint?dataFormat=PAYLOAD"/>
Я знаю, что camel выполняет преобразование в CxfPayload, поэтому я добавил следующий импорт в заголовок OSGi:
org.apache.camel.component.cxf,
org.apache.camel.component.cxf.converter,
org.apache.camel.converter.jaxb
Поэтому, когда производитель запускается, возникает следующее исключение:
org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: my.package.Foo to the required type: org.apache.camel.component.cxf.CxfPayload
Я могу избавиться от этого исключения, перезапустив связку camel-jaxb, но избавиться от него недостаточно: мне нужно предотвратить его, потому что это происходит каждый раз, когда я перезапускаю Fuse.
Любая идея приветствуется :)
ИЗМЕНИТЬ
Оказалось, что проблема возникает не всегда. Иногда работает после перезагрузки, иногда нет. Я пробовал играть с пакетными уровнями, но это оставалось непредсказуемым. У меня есть ощущение, что это может быть Camel, который неправильно загружает конвертеры, но на основе журнала трассировки похоже, что CxfPayloadConverter всегда загружается в ConverterRegistry.