2015-02-09 5 views
0

Я хочу запрограммировать маршрут Camel в Java, который постоянно проверяет папку для файлов, а затем отправляет их на процессор.Слушатель файлов в 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

Как будет развернуто это приложение? Will будет работать как автономный JAR или будет ли он развернут во время выполнения, например, Karaf? – Namphibian

ответ

1

Вы также можете переместить вы подаете обработку выделенного класса:

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()); 

Взгляните на имеющиеся архетипы верблюда-моба: http://camel.apache.org/camel-maven-archetypes.html где c amel-archetype-java отражает ваш случай

+0

Спасибо! Проблема в том, что я должен начать camelroute, и если я не работаю с бесконечным циклом, маршрут останавливается небывало. – HAG

+0

Пожалуйста, taka посмотрите на это: [Бегущий верблюд автономный и продолжайте работать] (http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html) – cslysy

+0

Спасибо, много! – HAG

0

Вот, возможно, чище способ сделать это:

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

Смежные вопросы