2017-01-23 12 views
0

Я новичок в Apachecamel У меня есть требование, чтобы переместить файл с FTP места в мою локальную папку:переместить файл с фтп местного использованием apachecamel

Я использую ниже маршрут, чтобы сделать это:

import java.io.File; 

import org.apache.camel.CamelContext; 
import org.apache.camel.Exchange; 
import org.apache.camel.Processor; 
import org.apache.camel.builder.RouteBuilder; 
import org.apache.camel.impl.DefaultCamelContext; 

public class CopyFtp { 
    public static void main(final String[] arguments) { 
     final CamelContext camelContext = new DefaultCamelContext(); 
     /* 
     * ConnectionFactory connectionFactory = new 
     * ActiveMQConnectionFactory("admin", "admin", 
     * ActiveMQConnection.DEFAULT_BROKER_URL); 
     * camelContext.addComponent("test-jms", 
     * JmsComponent.jmsComponentAutoAcknowledge(connectionFactory)); 
     */ 
     try { 
      camelContext.addRoutes(new RouteBuilder() { 
       @Override 
       public void configure() throws Exception { 

        from("ftp://[email protected]/folder?password=abc&delay=10000").routeId("testRoute") 
          .process(new Processor() { 

           @Override 
           public void process(Exchange msg) throws Exception { 
            File file = msg.getIn().getBody(File.class); 
            String file1 = msg.getIn().getBody(String.class); 
            System.out.println("" + file + file1); 
           } 

          }).to("file://E:/TestingWatch1/output"); 

       } 
      }); 
      camelContext.start(); 
      // Thread.sleep(10*60*1000); 
      // camelContext.stop(); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

Я не вижу, что файл перемещается из местоположения FTP в мою локальную папку, Я что-то упустил?

+0

Как выйти? Вы имеете в виду, что ваш файл, который вы пытаетесь переместить, не движется вообще? Я думаю, вы попадаете в ловушку, которую каждый делает, когда они впервые начинают использовать Camel, посмотрите на это: http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html – Jsmith

+0

Файл не перемещает его в мой локальный каталог. –

+0

Я довольно уверен, что происходит (я предполагаю, что, глядя на ваш код), это то, что Camel не работает постоянно, поэтому маршрут не запущен, поэтому ваш файл не передается. У вас был шанс посмотреть на эту ссылку? Вам нужно вызвать 'main.run()' в основном, чтобы сохранить работу Camel – Jsmith

ответ

0

В вашем случае программа завершена до того, как контекстное событие полностью запущено, поскольку там нет блокировки. Здесь вы можете увидеть, как правильно его запустить и оставить в рабочем состоянии: http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html