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