Apache Camel 设置文件扩展名

Apache Camel set file extension

我从 HTTP POST 正文中获取 xml 列表,然后尝试将其保存为文件系统上的 XML 文档。不幸的是,Camel 不会自动提供文件扩展名,文件在没有它的情况下保存,所以我无法在我的 XML-viewer 中打开它。此外,我想保留自动生成的文件名(如 ID-my_PC_name-some_strange_numbers)以避免文件覆盖或数据丢失。在阅读了有关 Camel 简单语言的文章后,仍然没有运气。任何帮助表示赞赏。这是我的配置:

.from("jetty:http://localhost:4422/input")
      .to("direct:fileCopy");

 .from("direct:fileCopy")
       //here I want to set file extension to .xml
       .to("file:D:/inprogress")
       .log("Incoming file saved to Inprogress directory");

您可以使用选项filename 来设置要生成的文件的模式。

.from("direct:fileCopy")
       .to("file:D:/inprogress?filename=mydata-${date:now:yyyyMMdd}.xml
")

会生成一个文件mydata-20150303.xml

如果你想使用消息 id,这是交易所的唯一 id,你可以

.from("direct:fileCopy")
           .to("file:D:/inprogress?filename=mydata-${id}.xml
    ") 

会生成一个文件mydata-SOME_RANDOM_ALPHANUMERIC_ID.xml

Apache Camel File Copy