将JMS消息从Java EE应用程序发送到Java SE应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将JMS消息从Java EE应用程序发送到Java SE应用程序相关的知识,希望对你有一定的参考价值。

由于配置错误,我不确定我所遇到的问题是概念问题还是技术问题。

目标是在应用程序容器(特别是WildFly)中托管的Java EE应用程序和运行独立的Java SE应用程序之间发送双向消息,所有这些都使用标准JMS协议和主题。我虽然这是可能的,只要他们都使用相同的经纪人和相同的主题。

所以我有一个外部Artemis实例作为消息代理运行,并在Java EE应用程序的单独bean中成功设置了生产者和使用者。他们都使用名为“topic1”的相同主题。消费者bean成功接收此生产者发送的消息。

现在我在Java EE应用程序中设置了另一对使用者和生产者,它在任何容器之外作为独立应用程序运行。它们连接到同一个代理,并使用相同的主题“topic1”。此消费者也接收此生产者发送的消息。

我期待任何一个制作人发布消息时,消费者都会收到消息。但这两个应用之间没有任何关系。容器内的应用程序既没有从独立的应用程序接收消息,也没有其他方式接收消息。我在这里犯了一个概念上的错误,还是在配置上有问题?

答案

好的,我发现了问题,这是一个相当错误的配置。我在Java SE端使用了主题的JNDI地址,这显然是一个错误,我应该使用主题名称!

以上是关于将JMS消息从Java EE应用程序发送到Java SE应用程序的主要内容,如果未能解决你的问题,请参考以下文章

JMS(Java消息服务)入门教程

从JMS到KafKa

ActiveMQ简述

SpringBoot 整合 ActiveMq

当两个应用程序都使用嵌入式activemq时,如何将Jms消息从一个spring-boot应用程序发送到另一个应用程序

分布式--ActiveMQ 消息中间件