如果骆驼路线上的move = null会发生什么?

时间:2019-07-18 18:51:06

标签: spring apache-camel

在我的Spring Camel应用程序中,我尝试根据destinationFolder属性移动或删除文件。如果为destinationFolder=null,我希望删除该文件。如果为destinationFolder!=null,我希望将文件移动到destinationFolder

String destinationFolder;

//In the Camel routeBuilder:
from("file://C:/folder1?move=" + destinationFolder)

在destinationFolder为null时会发生什么?文件会移动到默认位置吗?

当我将destinationFolder = null设置为空时,我看到该文件已在folder1中删除。

2 个答案:

答案 0 :(得分:0)

首先,您应该知道何时使用“ move”,“ delete”和“ noop”以及如何在Apache camel中使用

注意:1)如果目标路径不存在,则文件将自动删除。 注意:2)如果在驼峰URL中未使用“ noop = true”,则文件文件将被删除(如果目标路径为null)

参考:-enter link description here

基本测试代码:

    import org.apache.camel.builder.RouteBuilder;

    import org.apache.camel.impl.DefaultCamelContext;

    public class SFTPTest {

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

            DefaultCamelContext ctx = null;

            try{

                ctx = new DefaultCamelContext();

                ctx.addRoutes(new RouteBuilder() {

                    @Override

                    public void configure() throws Exception {

String filepath = "file:///camelexample/?fileName=test.txt&move=null";

                        from(filepath)

                              .log("File processed");

                    }

                });

                ctx.start();

                Thread.sleep(5000);

                ctx.stop();

            }catch (Exception e){

          System.err.println("Exception is : "+e.getLocalizedMessage());

            }finally {

                try{

                    ctx.stop();

                }catch (Exception e){

                   System.err.println("Exception is : "+e.getLocalizedMessage());

                }

            }

        }

    }

答案 1 :(得分:0)

如果设置了移动选项,则文件组件将移动文件,无法将其设置为null,然后使其自动删除文件。默认情况下,文件被移动到名为.camel的文件夹中。

因此,可以设置delete = true或将move设置为某个文件夹名称来移动文件。