我有一个带有 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/