骆驼第二次体验

时间:2014-11-19 14:52:28

标签: apache-camel stdout

我成功后 Camel first experience我遇到了另一个问题:我无法让Processor工作。这是代码:

public class CamelFE {
  public static void main(String[] args)  {
    CamelContext cc = new DefaultCamelContext();
    cc.addRoutes(new RouteBuilder() {
      @Override
      public void configure() throws Exception {
        System.out.println("Go!");
        from("file:///Users/Foo/Desktop/IN")
        .process(new Processor() {
          @Override
          public void process(Exchange arg0) throws Exception {
            System.out.println("file: "+((File)arg0.getIn().getBody()).getAbsolutePath());
          }
        })
        .to("file:///Users/Foo/Desktop/OUT");
      });
    }
    cc.start();
    Thread.sleep(10000);
    cc.stop();
}

我无法理解为什么处理程序的消息永远不会出现在stdout中。

1 个答案:

答案 0 :(得分:1)

获取绝对文件名和文件内容:

  from("file:///Users/Foo/Desktop/IN")
    .process(new Processor() {
      @Override
      public void process(Exchange arg0) throws Exception {
        String filename = arg0.getIn().getHeader("CamelFileAbsolutePath", String.class);
        System.out.println("file: " + filename);

        String contents = arg0.getIn().getBody(String.class);
        System.out.println("contents: " + contents);
      }
    })
    .to("file:///Users/Foo/Desktop/OUT");