2016-08-03 5 views
1

私は、1つのアプリケーション用にApache camelとspring bootを使用しています。私はディレクトリから読み込んだ後にXMLを読み込み非マーシャルし、非整列オブジェクトを処理してそれにデータを設定し、再度マーシャリングして別のフォルダに送信する必要があります。私は次のルートを使用しています。アンマーシャリング後にPOJOをプロセッサに送る方法を教えてください。現在のところ、交換機はデフォルトでプロセッサに接続されています。アンマーシャリングされたオブジェクトを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") 
     .unmarshal(new XMLtoPOJO()) 
     .log("Unmarshalled the xml") 
     .process(new MyProcessortoSetMoreDatatoPOJO()) 
     .log("Enriched with more data in processor") 
     .to("file:destination") 
     .log("Written to output file"); 
    } 
} 

答えて

1

プロセッサを使用している場合は、次のように、あなたが交換機からPOJOを取得することができます。

MyPojo pojo = exchange.getIn().getBody(MyPojo.class); 

代わりのプロセッサあなただけのPOJOのメソッドシグネチャを持つ平野POJO Beanを書くことができます使用するBean

public void doSomething(MyPojo pojo) 

そして、そのBeanをCamelから呼び出します。詳しくは、http://camel.apache.org/bean

をご覧ください。
関連する問題