Apache-Camel中的文件监听器

问题描述:

我想要在Java中编程一个不断检查文件夹文件夹的Camel Route,然后将它们发送给处理器。Apache-Camel中的文件监听器

我不知道它的方式似乎很“脏”我说:

from("file:C:\\exampleSource").process(new Processor() 
       { 
        @Override 
        public void process(Exchange msg) 
        { 
         File file = msg.getIn().getBody(File.class); 
         Filecheck(file); 
        } 
       }); 

      } 
     }); 
     camelContext.start(); 
     while (true) 
     { 
      // run 
     } 

是否有实现一个更好的办法?

在此先感谢。

+0

这个应用程序将如何部署?威尔将作为独立的JAR运行,还是将其部署到像卡拉夫这样的运行时间? – Namphibian 2015-02-09 19:40:24

您还可以将你的文件处理专用类:

import java.io.File; 
import org.apache.camel.Exchange; 
import org.apache.camel.Processor; 

public class FileProcessor implements Processor { 

    @Override 
    public void process(Exchange exchange) throws Exception { 
     File file = exchange.getIn().getBody(File.class); 
     processFile(file); 
    } 

    private void processFile(File file) { 
     //TODO process file 
    } 
} 

,然后用它如下:

from("file:C:\\exampleSource").process(new FileProcessor()); 

看看可用的骆驼maven原型:http://camel.apache.org/camel-maven-archetypes.html其中c amel-archetype-java反映你的情况

+0

谢谢!问题是,我必须开始camelroute,如果我不用无限循环工作,路线会立即停止。 – HAG 2015-02-09 16:35:24

+0

请大家看看这个:[运行骆驼独立,并保持运行](http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html) – cslysy 2015-02-10 10:00:48

+0

非常感谢你许多! – HAG 2015-02-10 10:42:16

这里是做一个也许更清洁的方式:

public static void main(String[] args) throws Exception { 
    Main camelMain = new Main(); 
    camelMain.addRouteBuilder(new RouteBuilder() { 
     @Override 
     public void configure() throws Exception { 
      from("file:C:\\xyz") 
        // do whatever 
      ; 
     } 
    }); 
    camelMain.run(); 
} 
+0

这里的问题是一样的。我必须使用无限循环来保持路线运行。 – HAG 2015-02-09 16:35:56