java - Camel .to 文件扩展名

标签 java apache-camel

在 ActiveMQ 中,我浏览我的“帐户”。当我点击它时,我可以看到不同的消息有一个消息 ID,“My-computername-some-numbers”(我认为它们是由 ActiveMQ 设置的)。

我希望camel从队列中读取数据并将数据写入名为“My-computername-some-numbers.xml”的文件中。现在我的输出文件只有“.xml”。

我的代码:

 from("jms:accounting")
.log("### Read jms:accounting ###")
.to("file:src/main/resources/data/work_in_progress?fileName=${file:name.noext}.xml");

最佳答案

如果您想在文件名中使用 JMS 消息 ID,则可以使用 fileName=${id}.xml

fileName 选项支持您可以使用的简单语言语法:http://camel.apache.org/simple

要获得更高级的命名,请使用您想要的名称设置 CamelFileName header ,或者查看使用动态。然而,如果您有无限的动态值,则后者不太理想,因为这会为每个唯一值创建新的端点 - 这不太好。最好使用 fileNameCamelFileName header 。

关于java - Camel .to 文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46889954/

相关文章:

java - 如何在Tomcat中配置另一个log4j配置文件?

java - 使用递归在 2 个索引之间的子字符串

java - 如何在Camel File2组件中使用幂等属性

java - 如何在 Apache Camel 中结合 Redelivery 策略和 Hystrix 断路器?

java - Camel 文件: Stop route when all files are processed

java - JPA/hibernate : mapping a single element in an entity with an one-to-many relationship

java - 从 Java 调用 shell 脚本

java - 将 Java 日期作为字符串转换为 JsDate?

java - 处理 apache camel 消费者错误

java - 测试 Camel 应用程序时如何模拟 Amazon SQS 端点