我是Apache Camel的新手。在hp不间断中,有一个接收器接收由事件管理器生成的事件,假设为流。我的目标是设置一个消费者终端,它接收传入消息并通过Camel进行处理。Apache Camel创建消费者组件
另一个端点我只需要将它写入日志。从我的研究,我明白,对于消费者终点,我需要创建自己的组件和配置会像
from("myComp:receive").to("log:net.javaforge.blog.camel?level=INFO")
这里是从事件系统接收消息,我的代码段。
Receive receive = com.tandem.ext.guardian.Receive.getInstance();
byte[] maxMsg = new byte[500]; // holds largest possible request
short errorReturn = 0;
do { // read messages from $receive until last close
try {
countRead = receive.read(maxMsg, maxMsg.length);
String receivedMessage=new String(maxMsg, "UTF-8");
//Here I need to handover receivedMessage to camel
} catch (ReceiveNoOpeners ex) {
moreOpeners = false;
} catch(Exception e) {
moreOpeners = false;
}
} while (moreOpeners);
有人可以引导一些提示如何使这作为消费者。
感谢您的回答,我创建了'MessageComponent','MessageEndpoint','MessageProducer'和'MessageConsumer'。 'MessageConsumer'扩展了'DefaultConsumer'。 找不到处理我的消息的方法。我是否需要将其添加到构造函数本身中? – vels4j
重写'DefaultConsumer'的doStart()'和doStop()'方法来启动/停止外部消息订阅/轮询。在我的情况下,我在消费者中实现了一个回调方法,每当我收到外部消息时都会调用它。在这个例子中,我创建了header和body,并将其设置为一个新的'Exchange',如上所示,并且消息在路由下发送。 – Ralf
完成,工作正常,谢谢 – vels4j