2016-11-30 18 views
0

次のコードを使用してラクダルートを作成しますが、ソースにファイルが作成されてもテストに影響はありません。どうして?Apache Camelを使用して入力フォルダーにファイルを挿入するとすぐにファイルを出力フォルダーに移動する方法はありますか?

public class DriverMain { 

    public static void main(String[] a) throws Exception { 
     CamelContext context = new DefaultCamelContext(); 
     context.addRoutes(new RouteBuilder() { 
      public void configure() { 
       from("file://source").to("file://test"); 
      } 
     }); 


     context.start(); 
     String path = System.getProperty("user.dir")+"\\source"; 
     File dir = new File(path); 
     File file = new File(path+"\\testfile.txt"); 
     file.createNewFile(); 
    } 

} 
+0

また、最後にコンテキストを停止する必要があります。 context.stop()を最後の行として追加します。また、from()とto()は、相対フォルダから読み込みます。あなたのアプリはuser.dir/sourceの下で動作していると確信していますか? –

答えて

0

定期的にファイルのためのキャメルポーリング。ファイルを作成していますが、すぐにアプリケーションを終了して、Camelがファイルをポーリングする時間がなくなります。デフォルトでは、Camelはポーリングを開始する前に1000ミリ秒待機します。 file2 component hereのオプションが表示されます。

このテストでは、ファイルを作成した後にThread.sleep(2000)を追加する必要があります。それとも、キャメルをスタンドアロンプ​​ロセスとして起動し、テストが自分の上にあるときにそれを終了させることをお勧めします。これはorg.apache.camel.main.Mainクラスを使用して行うことができます。実行中の例はCamel standalone hereです。

関連する問題