当前位置: 首页 > 知识库问答 >
问题:

从camel向xmpp发送消息时出现问题,jid格式不正确

姜良哲
2023-03-14

我正在尝试从发送(私人)直接消息A@jabber.de给用户B@jabber.de使用camel xmpp组件。但它总是说“吉德畸形”。使用此文档:https://camel.apache.org/components/latest/xmpp-component.html" target="_blank">html

使用camel 2.24.2和java 8,但在java 11上存在相同的问题。我还尝试在消息头中设置“from”和“to”。我还查看了组件的源代码,它总是构建“from”-JIDchat@...“这与使用smack库的所有其他教程不同,如:https://www.baeldung.com/xmpp-smack-chat-client

from("timer:sendMessage?period=5000")
        .setBody(constant("test"))
        .to("xmpp:A@jabber.de:5222/B@jabber.de?user=A&password=xxx");

我本以为会发送一条消息,但它登录成功,发送时,我在日志中收到以下错误:

o.a.c.c.xmpp.XmppLogger        | INBOUND : <message to='A@jabber.de/Camel' from='B@jabber.de@chat:B@jabber.de:A' id='BdCI4-9' type='error'><error type='modify'><jid-malformed xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>The destination address is invalid: B@jabber.de@chat:B@jabber.de:A</text></error></message>

谢谢你的建议。

共有2个答案

东方俊材
2023-03-14

看起来你忘记了“xmpp:”后面的尾部斜杠。

喻昀
2023-03-14

创建私有消息时,线程名称被附加到JID。

https://github . com/Apache/camel/kill/master/components/camel-xmpp/src/main/Java/org/Apache/camel/component/xmpp/xmppprivatechatproducer . Java # L98

我不是XMPP或Smack方面的专家,但似乎Openfire(就我而言)对JID中的线程名称并不满意。删除线程名称后,我可以发送私人消息

我已经把这个问题提交给了骆驼臭虫追踪者。

 类似资料:
  • > 我有这样一种情况,即通过RabbitMQ从一台机器向另一台机器循环发送大约15条消息。 在发送和接收计算机之间有NAT设置。 我将spring rabbitmq用于所有rabbitmq操作。 如果我在循环中向rabbitmq发送消息,如果它不能处理,它是否有可能拒绝某些消息?15条消息的总大小接近8MB. 即使在执行向RabbitMQ发送消息之后,我也没有看到任何异常。 发送机器码

  • 我是Kafka的新手,当我试图发送信息到我得到的主题下面的错误。有人能帮我一下吗? [2018-09-23 13:37:56,613]警告[Producer Clientid=Console-Producer]无法建立到节点-1的连接。代理可能不可用。(org.apache.kafka.clients.NetworkClient)

  • 我刚刚开始使用使用Apache Camel 2.15.3的应用程序。我是Camel的新手,我正在尝试了解消息是如何发送的,以及路由中组件之间的外观。 应用程序中的路由是使用Spring扩展xml设置的。以下是其中一条路由的示例。 首先是一个简短的术语问题:本示例中的中间bean叫什么?endpoint?组件?还是别的什么?现在我把它们叫做组件。 我现在的主要困惑是理解什么是输入,什么是从一个组件传

  • 我有一个问题与产生的消息Kafka的主题。 我使用来自外部供应商的Kafka管理服务,所以我问他经纪人的状况,他说一切都好。顺便说一句,它发生在三个不同的Kafka实例上。Kafka客户端版本也无关紧要-0.11.0.0和2.0.1都有。

  • 如标题所述,我想使用RabbitMQ向Websocket发送消息。使用AngularJS前端,我想从Websocket读取RabbitMQ消息,并将它们打印到控制台。原则上,我的代码似乎是可行的,尽管我不知道如何获得消息的实际(字符串)内容? 后端:为了创建Websocket并执行路由,我使用Spring Boot和Apache Camel:http://camel.Apache.org/Spri

  • 如何修复ProbableAuthenticationError? 主机是Debian7和Python 2.7.3和pika 0.9.14,来宾是Ubuntu 15.04和rabbitmq-server 3.4.3-2