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

标签 java xmpp apache-camel openfire

我将 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.1user1@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/

相关文章:

java - Java 中的 Koblitz 方法

java - 错误 : java. lang.NumberFormatException:

ios - XMPPFramework - 无法从 Openfire 服务器检索聊天历史记录

java - 如何从Hashmap构成的listview中获取特定textview的值?

java - 在java spring项目中使用delphi dll

android - xmpp在android应用程序中发送和接收消息

android - 如何使用 asmack android 从 Openfire 检索一对一的聊天记录

java - 在 Camel 中,@Produce 生产什么,@Consume 消费什么?

mysql - 我如何处理 CAMEL jdbc 连接异常?

java - 如何让 Apache Camel 删除 "direct"路由末尾的文件?