Мне нужно получить обновление, опубликованное в теме JMS, преобразовать его в пакет XMPP (пакет Presence или пакет PubSub) и направить его в конечную точку XMPP.
Я использую ActiveMQ в качестве JMS-провайдера и Apache Camel в качестве механизма маршрутизации. ниже приведен мой маршрут в Camel (для простоты я читаю из system.in вместо темы jms):
from("stream:in?promptMessage=Enter something:").process( new Processor(){
public void process(Exchange exchange) throws Exception {
System.out.println("sending presence with message: " + exchange.getIn().getBody().toString());
Presence p = new Presence(Type.available, exchange.getIn().getBody().toString(), 5, Mode.chat);
exchange.getIn().setBody(p);
}
}).to("xmpp:user1@banl080161?password=pass1");
Идея состоит в том, что user1 @ banl080161 должен иметь возможность отправлять пакет присутствия обычного пользователя, имеющий статус, указанный в system.in. Я читаю из system.in, создаю пакет присутствия, устанавливаю этот пакет в теле обмена и отправляю это присутствие от имени user1 @ banl080161.
Проблема: ничего не отправляется на сервер XMPP, я использую PSI, чтобы увидеть пакеты, поступающие от user1 @ banl080161, user1 @ banl080161 точно подключен к сети, но пользовательское сообщение о присутствии не получено.
Можно ли делать такие вещи в Apache Camel?