Apache Camel:创建简单的POJO管道(放入POJO并获取POJO)

时间:2014-05-07 23:13:11

标签: java apache apache-camel pipeline

我刚刚发现了Camel,它似乎正是我所需要的 我有几个构建块知道如何处理特定的输入数据,所以我想创建一个非常简单的GUI供用户选择构建块,只是一个接一个地链接它们(有点像Fuse IDE,但不是那种花哨。只是一个线性的组件清单对我来说已足够了。)

我找不到示例如何在其中逐个启动上下文Feed简单POJO,每次等待直到上一个输入消息到达其路径的末尾,然后在另一端获得另一个POJO
或者将其写入数据库/序列化为文件 谷歌搜索只提供了Spring,ActiveMQ等的一些例子。我只需要最简单的场景,但要弄清楚要使用哪些URI等。


PS:我能够运行这个简单的例子(唯一的依赖是camel-core 2.13和slf4j 1.7.7)

CamelContext context = new DefaultCamelContext();

// add our route to the CamelContext
context.addRoutes(new RouteBuilder() {
    @Override
    public void configure() {
        from("file:src/data?noop=true").
            choice().
                when(xpath("/person/city = 'London'")).to("file:target/messages/uk").
                otherwise().to("file:target/messages/others");
    }
});

// start the route and let it do its work
System.out.println("Starting camel no maven");
context.start();
Thread.sleep(3000);
System.out.println("Done camel no maven");
// stop the CamelContext
context.stop();

1 个答案:

答案 0 :(得分:3)

看看CamelProxy。它允许您发送到Camel端点。

OrderService service = new ProxyBuilder(context)
  .endpoint("direct:order")
  .build(OrderService.class);

OrderService是一个定义您要用来发送的方法的接口:

public interface OrderService {
  public String send(SomeBean message);
}

示例路线:

from("direct:order").to("bean:someProcessor");

向路线发送消息:

String reply = service.send(new SomeBean());

Here is a simple working example