我将 Camel 路由发送到带有 uri 的生产者模板:
xmpp://user1@127.0.0.1:5225/user2@127.0.0.1?password=password
位于127.0.0.1:5225
的服务器正在运行openfire并安装了监控插件。 user1和user2都在服务器上设置。
我有一个在 user2 上登录的洋泾浜客户端。
如果我更改发送到房间的 uri 并使用 pidgin 客户端查看该房间,消息将按预期显示。但是,因为没有收到任何消息。使用监控插件,可以看到消息已归档在 openfire 中,参与者为 user1@127.0.0.1
和 user1@127.0.0.1/Camel
。
有什么想法为什么 Camel 似乎没有发送给我设置的参与者吗?
更新:
使用 pidgin 客户端可以将消息从“user1@127.0.0.1”发送到“user2@127.0.0.1”,反之亦然。 以“user1@127.0.0.1”身份运行camel,同时以“user1@127.0.0.1”身份登录 Pidgin 意味着我会收到消息。
最佳答案
原来我是使用以下方法发送的:
producer.sendBodyAndHeaders(msg, exchange.getIn().getHeaders());
交换 header 包含一个 XMPPConstants.To
header ,该 header 覆盖了 uri 中的参与者字段。
关于java - 来自 Camel XMPP 的消息未通过 Openfire 到达 Pidgin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28769054/