首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache-Camel中的文件侦听器

Apache-Camel中的文件侦听器
EN

Stack Overflow用户
提问于 2015-02-09 12:42:35
回答 2查看 1.1K关注 0票数 0

我想在Java中编写一个骆驼路径,它经常检查文件夹中的文件,然后将它们发送到处理器。

我知道,我这样做对我来说很“肮脏”:

代码语言:javascript
复制
from( "file:C:\\exampleSource" ).process( new Processor()
                {
                    @Override
                    public void process( Exchange msg )
                    {
                        File file = msg.getIn().getBody( File.class );
                        Filecheck( file );
                    }
                } );

            }
        } );
        camelContext.start();
        while ( true )
        {
            // run
        }

是否有更好的方法来实现这一点?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-09 13:04:47

还可以将文件处理移动到专用类:

代码语言:javascript
复制
import java.io.File;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;

public class FileProcessor implements Processor {

    @Override
    public void process(Exchange exchange) throws Exception {
        File file = exchange.getIn().getBody(File.class);
        processFile(file);
    }

    private void processFile(File file) {
        //TODO process file
    }
}

然后按以下方式使用:

代码语言:javascript
复制
from("file:C:\\exampleSource").process(new FileProcessor());

看看可用的骆驼maven原型:camel-archetype-java反映您的情况的http://camel.apache.org/camel-maven-archetypes.html

票数 1
EN

Stack Overflow用户

发布于 2015-02-09 12:46:26

下面是一种更干净的方法:

代码语言:javascript
复制
public static void main(String[] args) throws Exception {
    Main camelMain = new Main();
    camelMain.addRouteBuilder(new RouteBuilder() {
        @Override
        public void configure() throws Exception {
            from("file:C:\\xyz")
                    // do whatever
            ;
        }
    });
    camelMain.run();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28410100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档