Apache camel - 简单的扫描目录和ftp上传

时间:2014-08-06 15:08:02

标签: java ftp apache-camel message-queue

我正在尝试使用Apache camel进行简单的目录监听,并通过ftp将文件上传到外部位置。我是新人。

我可以使用此脚本将文件从一个目录移动到另一个目录。所以我觉得我已经走了一半。我现在正在努力将它从一个目录移动到ftp服务器目录。我已经用ftp客户端测试了ftp连接,一切正常。

当我运行它时,它将文件移动到名为“.camel”的目录中,但不上传它?它没有输出任何错误?我不确定输出或查看日志到终端,所以我可以查看出了什么问题?我是否需要包含某种.process()?

Main.class

public class Main {

    public static void main(String[] args) throws Exception{

        CamelContext camelContext = new DefaultCamelContext();
        camelContext.addRoutes(new MoveFileRoute());
        camelContext.start();
        Thread.sleep(10000);
        camelContext.stop();
    }

}

MoveFileToRoute

public class MoveFileRoute extends RouteBuilder {

    @Override
    public void configure() throws Exception{

        from("file://C:\\test")
          .choice()
          .when(simple("${in.header.CamelFileName} contains '*.xlsx'"))
          .to("ftp://rob@10.171.16.100/home/rob/test/?password=rob")
          .otherwise()
          .to("log://org.apache.camel.howto?showAll=true&level=DEBUG");
    }


}

1 个答案:

答案 0 :(得分:2)

想出来......

.when(simple("${in.header.CamelFileName} contains '*.xlsx'"))

此行上的*会破坏它..

在这里回答

public class MoveFileRoute extends RouteBuilder {

    @Override
    public void configure() throws Exception{

        from("file://C:\\test")
          .choice()
          .when(simple("${in.header.CamelFileName} contains '.xlsx'"))
          .to("ftp://rob@10.171.16.100:21/test?password=rob")
          .otherwise()
          .to("log://org.apache.camel.howto?showAll=true&level=DEBUG");
    }


}

我仍然没有想出如何查看日志。