Camel中BeanIO的动态映射



我想实现如下:

from("direct:dataload")                 
                .beanRef("headerUpdater")
                .log("Log: " + simple("${in.header.contentType}").getText())                    
                //.unmarshal().beanio(simple("${in.header.contentType}").getText(), "content")
                .unmarshal(new BeanIODataFormat(
                        "file://C://Users//admr229//Documents//mappings.xml", "clients"))
                .to("bean:headerFooterValidator")
                .split(body())
                .process(dataValidator).choice()
                .when(header("error").isNotNull())
                .to("seda:saveErrorsForReport").otherwise()
                .to("seda:updateLive")
                .end();

我已经注释掉了我写不出来的行。我想从上一个端点的输出传递动态值来初始化beanio。我唯一能想到的是使用收件人列表,这将动态选择一个预定义的端点。因为,在我的例子中,该端点将与beanio解约,不像"activemq:queue:test"这样的东西,它是纯文本。我希望我已经把问题讲清楚了。如果您需要进一步的细节,请告诉我。我使用camel 2.15.2

您可以使用数据格式组件[1],其中您可以指定beanio作为数据格式,并构建uri动态[2]

[1] - http://camel.apache.org/dataformat-component.html

[2]——http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html

你可以这样做,但我想这不是动态的,因为它需要在打开上下文之前设置属性。

.unmarshal()。beanio(映射,streamName)

相关内容

  • 没有找到相关文章

最新更新