Я новичок в Apache Camel. В hp nonstop есть приемник, который принимает события, генерируемые менеджером событий, как потоки. Моя цель - настроить конечную точку потребителя, которая получает входящее сообщение и обрабатывает его через 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
Переопределите 'doStart()' и 'doStop()' методы 'DefaultConsumer' для запуска/остановки вашей подписки/опроса внешних сообщений. В моем случае я применил метод обратного вызова у своего потребителя, который получает вызов, когда я получаю внешнее сообщение. В этом я создаю заголовки и тело и устанавливаю его на новый «обмен», как показано выше, и сообщение отправляется по пути вниз по маршруту. – Ralf
Совершено, отлично работает, спасибо – vels4j