我是Apache Camel的新手。在HP NonStop中,有一个接收器可以接收由事件管理器生成的事件,类似于流。我的目标是设置一个消费者端点,接收传入的消息并通过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
。我找不到一个方法来处理我的消息。我需要在构造函数中添加它吗? - vels4jDefaultConsumer
的doStart()
和doStop()
方法以启动/停止您的外部消息订阅/轮询。在我的情况下,我在我的消费者中实现了一个回调方法,每当我接收到外部消息时就会调用它。在其中,我创建头和正文,并将其设置在新的Exchange
上,然后将消息沿着路由发送。 - Ralf