2016-05-05 10 views
0

Apache Camelコンポーネントを使用してファイルを転送する一般的なルートを作成しようとしています。Apache Camelを使用した一般的なファイル転送ルート

シナリオ:複数のサーバー上に存在

  • 複数のソースファイル。
  • ファイルを宛先サーバーにftpする必要があります。

プロパティから送信元と宛先の設定を読み込んでファイルをルーティングできる方法はありますか?

ソースと宛先をさらに追加する必要がある場合は、プロパティファイルを変更するだけです。 Apache Camelのエンドポイントからダイナミックにすることはできません。

例:

{server1-file1} - camel route(Generic) - {server2-file1} 
{server1-file1} - camel route(Generic) - {server2-file1} 
{server1-file1} - camel route(Generic) - {server2-file1} 

答えて

1

この特定の問題に対処するために、あなたが開始URIを注入することを可能にするJavaでのラクダのルート、およびエンドURIを作成します。このアイデアをルートテンプレートといいます。この例は次のとおりです。

public class FtpTemplateRoute extends RouteBuilder { 
    private String startUri; 
    private String endUri; 

    public FtpTemplateRoute(String startUri, String endUri) { 
     this.startUri = startUri; 
     this.endUri = endUri; 
    } 

    public void configure() { 
     from(startUri) 
      ... 
      .to(endUri); 
    } 
} 

あなたは、それは回数をXインスタンス化し、あなたのCamelContextを設定しているとき:

CamelContext context = new DefaultCamelContext(); 
context.addRoutes(
    new FtpTemplateRoute("ftp:///dirA", "ftp:///dirB")); 
context.addRoutes(
    new FtpTemplateRoute("ftp:///dirC", "ftp:///dirD")); 

それはあなたがソースをロードする方法はあなた次第ですし、標的のウイス。

関連する問題