我需要接收发布到 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 中做这种事情吗?