如何使用Apache Camel发送消息?

时间:2013-11-08 19:51:08

标签: java apache-camel

我正在尝试创建一个托管在“mina:tcp:// localhost:9991”的示例应用程序,它将一条非常简单的消息发送到托管在“mina:tcp:// localhost:9990”的服务器。

现在我承认我在理解如何做到这一点时遇到了一些问题。我的第一种方法是创建一个名为Message的类,它有两个字段:String orderString host。但是,我对如何做到这一点感到非常困惑。

首先,我尝试遵循loadbalancer-example,基于ReportGenerator并创建一个MessageGenerator类,可以创建一条消息并将其返回:

但是,有一个问题,我需要参数来创建我的消息,这是从示例创建报告时不会发生的事情:

//Message constructor
public Message(String order, String host){
    //constructor stuff
}

通过阅读Camel in Action我知道如何使用bean来调用没有参数的方法,但是我仍然不明白我应该如何使用它们来调用具有多个参数的方法(我是否被迫使用处理器?)

然后我意识到,或许我会使事情变得复杂,并且有一种更简单的方式来发送消息。所以我尝试了另一种方法,导致一小部分代码不能正常工作。我已就此问题创建了一个单独的问题:

显然我做错了什么,我什么都没得到。所以,我有两个问题:

  1. Manning的Camel in Action定义了一种简单的方法和一种使用bean的简单方法,但我不明白使用带参数的bean的简单方法。有人可以提供一个例子吗?
  2. 有没有办法发送一个由Camel中的几个字段组成的消息(一种简单的方法,没有处理器),不涉及使用bean?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:3)

有几种方法可以在Camel中发送消息。根据Camel论坛提供的帮助,最好的两个是:

  1. 使用链接到POJOS和路线的bean(例如:http://camel.apache.org/loadbalancing-mina-example.html
  2. 使用制作人模板(文档:http://camel.apache.org/producertemplate.html
  3. 希望有一天能帮助别人。