java - 如何在 JBoss 7 中从一台机器向 JMS 服务器发送消息并从另一台机器接收消息

标签 java jms jboss7.x

我正在尝试从我的笔记本电脑向 JMS 服务器 发送消息(TextMessage),然后我尝试从另一台笔记本电脑接收该消息。我正在使用 JBoss AS 7.1。我的两台笔记本电脑连接在同一网络中。

当我这样做时,我遇到了异常。我在 google 中搜索了此内容,有人说在 JBoss 7.1 JNDI 中将无法从远程 IP 获取连接,他们说我们必须使用 HornetQ

有人可以帮忙解决这个问题吗?

最佳答案

看起来您有两个队列,每台机器上都有一个。他们只是名字相同,但没有任何联系。您可以让发送方计算机直接使用远程队列,但建议使用(就像您拥有的)两个队列,每个节点上一个,然后配置一个网桥将消息从一个队列移动到另一个队列另一个。通过这种方式,发送和接收消息将在您的本地事务中进行,这正是您通常想要的。

为了配置桥接器,HornetQ 提供了两个选项:通用 JMS 桥接器和核心桥接器。前者是通用的,因为它可以在任何 JMS 提供者的 JMS 队列之间进行桥接。但 HornetQ 文档建议在两侧使用 HornetQ 时使用核心桥,因为它们更快、更稳健。

JBoss docs (“JMS 桥”部分)描述了使用 CLI 设置 JMS 桥。 HornetQ docs for core bridges描述独立设置(JBoss 服务器之外);将其转换为 CLI,您将得到(将大括号中的部分替换为您的值):

/subsystem=messaging/hornetq-server=default/bridge={bridge-name}:add(queue-name="{queue-name}", forwarding-address="{remote-hostname}", static-connectors=["http-acceptor"])

要查看所有参数的简要说明,请使用以下命令:

/subsystem=messaging/hornetq-server=default/bridge=x:read-resource-description

关于java - 如何在 JBoss 7 中从一台机器向 JMS 服务器发送消息并从另一台机器接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22279347/

相关文章:

java - 根据特定单元格值划分 Excel 工作表

java - 创建一个 SortedSet(对象)并向其插入元素或创建一个 ArrayList 并在之后对其进行排序是否更快?

java - JMS中上下文的目的是什么?

java - JMS MessageDriven bean - 如何同步线程?

jboss - Jboss EAP 6 的默认管理控制台密码是什么

java - 在 JBos 的 servlet 中使用 TCP 套接字

java - Android Studio 代码可以编译但无法运行

jms - 使用 Spring Integration 向 ActiveMQ Artemis 主题发送消息

Jboss 尝试从其他 war 文件加载依赖类

java - Jackson:自定义解析 ObjectId(来自@JsonIdentityInfo)