来自 Camel XMPP 的消息未通过 Openfire 到达 Pidgin

Messages from Camel XMPP not arriving in Pidgin via Openfire

我使用 uri 将骆驼路线发送到生产者模板:

xmpp://user1@127.0.0.1:5225/user2@127.0.0.1?password=password

127.0.0.1:5225的服务器是运行openfire,安装了监控插件。服务器上设置了user1和user2。

我在 user2 上登录了一个 pidgin 客户端。

如果我更改 uri 以发送到某个房间并使用 pidgin 客户端查看该房间,消息将按预期显示。但是,因为它没有收到任何消息。使用监控插件,它显示消息在 openfire 中存档,参与者为 user1@127.0.0.1user1@127.0.0.1/Camel

为什么 Camel 似乎没有发送给我设置的参与者有什么想法吗?

更新:

消息从 'user1@127.0.0.1' 发送到 'user2@127.0.0.1',反之亦然使用 pidgin 客户端。 并且 运行 骆驼作为 'user1@127.0.0.1' 同时登录 Pidgin 也作为 'user1@127.0.0.1' 意味着我收到了消息。

原来我是使用以下方法发送的:

producer.sendBodyAndHeaders(msg, exchange.getIn().getHeaders());

交换 headers 包含一个 XMPPConstants.To header,它覆盖了 uri 中的参与者字段。