我是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