Apacheのキャメルプロセスメソッドが呼び出さ取得されていません

以下のとおりです。

私は約20レコードをcsvファイルを持っています。XMLへのcsvファイルレコードごとの変換、それを読んで、ActiveMQのキューへのメッセージとしてXMLを送信することを目指してマイ。私は、Apacheのキャメルを使用して、これをやっています。

最初のステップ:csvファイルを読み、Apacheのキャメルを使用してXMLに変換します。

以下のコードは次のとおりです。

    CamelContext _ctx = new DefaultCamelContext(); 
            _ctx.addRoutes(new RouteBuilder() {

                public void configure() throws Exception {
                    System.out.println("Inside configure method.");
                    from("file:src/main/resources/data-sample.csv")
                    .process(new MyTransform())
                    .to("file:src/main/resources/fileName=emp.xml");
                }

            });

            _ctx.start();
             Thread.sleep(4000);
            _ctx.stop();

class MyTransform implements Processor {

    public void process(Exchange exchange) throws Exception {

        System.out.println("In Process method");

        String myString = exchange.getIn().getBody(String.class);
        String[] lineSeparator = myString.split(System.getProperty("line.separator"));
        StringBuffer sb = new StringBuffer();

        for (String lineData : lineSeparator){

            String[] commaSeparator = lineData.split(",");
            sb.append("<equityFeeds>");
            sb.append("<externalTransactionId>" + commaSeparator[0].toString() + "</externalTransactionId>");
            sb.append("<clientId>" + commaSeparator[1].toString() + "</clientId>");
            sb.append("<securityId>" + commaSeparator[2].toString() + "</securityId>");
            sb.append("<transactionType>" + commaSeparator[3].toString() + "</transactionType>");
            sb.append("<transactionDate>" + commaSeparator[4].toString() + "</transactionDate>");
            sb.append("<sourceSystem>" + commaSeparator[5].toString() + "</sourceSystem>");
            sb.append("<priorityFlag>" + commaSeparator[6].toString() + "</priorityFlag>");
            sb.append("</equityFeeds>");

        }

        System.out.println("MyProcessor complete");
        exchange.getIn().setBody(sb.toString());

    }   

}   

出力ではそれだけで印刷します

configureメソッドの内部。

processメソッドが呼び出されていません。どうして?なにが問題ですか?私を導いてください。それはとても迷惑なんです。助けてください。

サンタクロースイプセン:

ただ、言ってfrom("file:src/main/resources/")その開始ディレクトリとして。あなたがピックアップのみ、特定のファイルにしたい場合は、言いますfrom("file:src/main/resources?fileName=data-sample.csv")

また、あなたのアプリケーションは、唯一のあなただけの睡眠としてそのための4秒間に実行されます。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=348452&siteId=1