2016-08-02 18 views
0

私はapache camelとspring bootの新機能です。私はフォルダからjmsキューにファイルを転送する必要があるアプリケーションを書いています。しかし、その前に私は起こっていない1つのフォルダから別のファイルを転送しようとしています。アプリケーションをスプリングブートアプリケーションとして実行すると、入力フォルダーが作成されます。このフォルダにファイルを貼り付けると、保存先フォルダは作成されず、ログステートメントも表示されません。それが動作するはずですし、それはそれはあなたが進捗状況を追跡している方法です場合は、おそらくあなたは、あなたのIDEでワークスペースをリフレッシュしていない、私のために働くんディレクトリ間のApache camelファイルのコピー

@SpringBootApplication 
public class CamelApplication extends FatJarRouter { 

    public static void main(String ... args) { 
     SpringApplication.run(CamelApplication.class, args); 
    } 

    @Override 
    public void configure() throws Exception { 
     from("file:input?noop=true") 
     .log("Read from the input file") 
     .to("file:destination") 
     .log("Written to output file"); 
    } 
} 

答えて

2

:これは私がルートを追加する方法です。

EDIT

私はあなたの設定で間違っているものを今見る - あなたの主なメソッドがブロックされ、即座に終了しませんので、おそらくあなたのクラスパスに春ブート・スターター・ウェブを持っていません。

あなたはCamelApplicationからmainメソッドを削除し、application.propertiesにこのエントリを追加する必要があります

spring.main.sources = com.example.CamelApplication 

それとも、あなたがCamelSpringBootApplicationControllerを実行するためにあなたの主な方法に変更することができます

@SpringBootApplication 
public class CamelApplication extends FatJarRouter { 

    public static void main(String... args) { 
     ApplicationContext applicationContext = SpringApplication.run(DemoApplication.class, args); 
     CamelSpringBootApplicationController applicationController = 
       applicationContext.getBean(CamelSpringBootApplicationController.class); 
     applicationController.run(); 
    } 

    @Override 
    public void configure() throws Exception { 
     from("file:input?noop=true") 
       .log("Read from the input file") 
       .to("file:destination") 
       .log("Written to output file"); 
    } 
} 

代わりに、あなたが追加することができますこれをpom.xmlに組み込み、埋め込みTomcatを強制的に起動してメインメソッドをブロックします:

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
</dependency> 
+0

ありがとうございます。私はspring-boot-starter-webの依存関係を追加し、それがうまくいった。 – Megha

関連する問題