如何配置Camel的jackson XmlMapper?

mar*_*.ua 5 java apache-camel jackson spring-boot

我有一个 SpringBoot 应用程序,使用 Camel 进行路由。为了配置 jackson xmlMapper,我有以下 spring bean:

@Bean
public XmlMapper xmlMapper() {
    XmlMapper xmlMapper = new XmlMapper();
    xmlMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
    return xmlMapper;
}
Run Code Online (Sandbox Code Playgroud)

我希望 Camel 在解组收到的 POJO 时使用此映射器,如下所示:

from("direct:myRoute")
     .marshal().jacksonxml()
     .inOnly("activemq:outputQueue");
Run Code Online (Sandbox Code Playgroud)

但它不是这样工作的:编组 xml 中存在空字段。Camel 文档提供了使用 JacksonXMLDataFormat 的方法,如下所示:

JacksonXMLDataFormat format = new JacksonXMLDataFormat();
format.setInclude("NON_NULL");
from("direct:myRoute")
     .marshal(format)
     .inOnly("activemq:outputQueue");
Run Code Online (Sandbox Code Playgroud)

它可以工作,但每次编组某些内容时我都必须指定 dataFormat,并且解组会变得更加棘手。

Camel的xmlMapper有统一的配置方式吗?