java - 使用Bean组件处理Camel消息

标签 java jboss apache-camel

我有一个带有 FTP 和 Bean 组件的 Camel 路由来处理消息。该消息是 FTP 上的一个文件,我想获取每个已处理文件的文件名。我知道如何获取带有参数 String 的文件,但是我无法获取文件名。感谢您的回答。

最佳答案

Camel FTP组件扩展了File组件,File组件在消费文件时添加以下 header :

  • CamelFileName :使用的文件的名称,作为相对文件路径,并具有与端点上配置的起始目录的偏移量。
  • CamelFileNameOnly :只有文件名(没有前导路径的名称)。

您可以在File2 documentation page“仅限文件使用者”部分查看其他可用 header 。 .

在 bean 方法中,您可以使用 @Simple 将特定 header 作为参数传递。为其赋予值 "header.<header name>" 的注释。例如:

public void processFile(@Body String fileContent, @Simple("header.CamelFileNameOnly") String fileName){
  // your method implementation
}

关于java - 使用Bean组件处理Camel消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31534985/

相关文章:

java - 类成员的最小值和最大值

java - 使用集群在 JBoss 上调度任务

java - 为什么我的 Interceptor 在 Weld SE 单元测试中失败?

java - Apache Camel - 指定要使用的转换器

java - 如果文件名模式与 Camel 不匹配,如何将文件移动到错误目录

java - 如何使用 Spring Scheduler 而不是 Camel Timer 启动 Camel 路线

jdbc - 在sqlite上调用createArrayOf方法时出现java.lang.AbstractMethodError : org. sqlite.Conn.createArrayOf错误

java - 在 Java 客户端中接受服务器的自签名 ssl 证书

netbeans - 如何使用 Netbeans 设置 JBoss 服务器?

java - Hibernate/JPA 双向级联 saveOrUpdate