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

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 >这通常很好,但是现在我需要能够基于一个头值来更改注入的属性。在我的脑海中,它看起来像这样: 我已经考虑过只注入两个属性并在主方法中决定使用哪一个,但这似乎是一种迂回的方式,如果添加更多版本,会有点臃肿 有没有简单的方法可以做到这一点?

  • 我有一个应用程序加载它的Spring上下文与XML配置。 上下文文件存储在jar的类路径中(在目录中)。 通过引入一个新bean,我想从同一存档的类路径中加载一个beanio映射文件。由于Tomcat在Eclipse中运行,这一切都很有吸引力,但当我将WAR文件部署到QA环境时,应用程序无法启动。 让我走代码: 然后是背景 然后呢?嗯...我已经通过首先解压war文件来双重检查构建的jar文件。都