Мне нужно получить обновление, опубликованное в теме JMS, преобразовать его в пакет XMPP (пакет присутствия или пакет PubSub) и перенаправить его на конечную точку XMPP.Может ли Apache Camel отправлять XMPP-пакет присутствия/pubsub в конечную точку XMPP?
Я использую ActiveMQ как поставщик JMS и верблюд Apache в качестве механизма маршрутизации. Приведенное ниже мой маршрут в 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:[email protected]?password=pass1");
Идея в том, что user1 @ banl080161 должен быть в состоянии послать присутствие Custome пакет, имеющий статус данные из system.in. Я читаю из system.in, создавая пакет присутствия, устанавливая этот пакет в телеобмена и отправляю это присутствие от имени user1 @ banl080161.
Проблема: ничего не отправляется на сервер XMPP, я использую PSI, чтобы увидеть пакеты, приходящие от user1 @ banl080161, user1 @ banl080161 приходит онлайн точно, но ни одно сообщение на заказ присутствие не будет получено.
Возможно ли это сделать в верблюде apache?
просмотрел код компонента верблюжьей XMPP, верблюд может либо отправить сообщение чата или может сделать многопользовательский чат. Кажется, отправка пользовательского пакета xmpp невозможна. – CPJoshi