当前位置: 首页 > 知识库问答 >
问题:

Camel中BeanIO的动态映射

傅志文
2023-03-14
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();

共有1个答案

汝跃
2023-03-14

您可以使用数据格式组件[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

 类似资料:
  • 我有以下关于固定长度数据文件的规范(参见第4页的记录-C类型规范) 问题是:我如何在BeanIO中声明重复的固定长度字段?

  • 我正在使用Apache Camel编写一个演示程序。Out Camel route正在从Spring Boot计划程序调用,它将文件从源目录C:\CamelDemo\inputFolder传输到目标目录C:\CamelDemo\outputFolder Spring Boot调度程序如下 阿帕奇骆驼路线如下 当我注释掉recipientList()的行,并在to()中取消注释to()即givig静

  • 我正在使用骆驼beanio组件对文件内部的数据进行封送和解封。

  • 我将学习《骆驼行动》一书的第8章,并使用动态路由器进行测试。我定义了以下两条路线: 在DynamicRouterBean的路由方法中,我实现了如下路由逻辑: 代码按照书中描述的那样工作。。。但我认识到的问题是,如果我在路由方法中间返回endpointURI而没有双斜杠“//”,则检查前一个等于“SEDA:A”的第二个条件将失败,因此动态路由将在那里停止。 Camel的DynamicRter需要在U

  • 我使用@PropertyInject注释从application.properties文件中获取属性,以便在我的beans中使用。< br >这通常很好,但是现在我需要能够基于一个头值来更改注入的属性。在我的脑海中,它看起来像这样: 我已经考虑过只注入两个属性并在主方法中决定使用哪一个,但这似乎是一种迂回的方式,如果添加更多版本,会有点臃肿 有没有简单的方法可以做到这一点?

  • 问题内容: 我的数据结构非常通用。几乎所有类型的数据都适合我的数据结构。 另一个文档可能是这样的: 该数据可以更改,并且字段可以具有任何类型和名称。如何动态创建模板映射,以便通过数据中“类型”的值来设置映射的“类型”?例如,值:34.50,类型:在同一时间浮动相同数据“值”:“哈利·波特”,类型:字符串 我已经知道ES中已经做到了这一点,但是我无法做出真正使用文档中指定的“ type”值来实际为该