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

Send JMS messages from Java EE application to Java SE application

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

目标是在应用程序容器中托管的 Java EE 应用程序(此处特别是 WildFly)和 Java SE 应用程序 运行 独立应用程序之间发送双向消息,全部使用标准JMS 协议和主题。我认为这应该是可能的,只要他们都使用相同的代理和相同的主题。

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

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

我原以为当任何一个生产者发布一条消息时,两个消费者都会收到它们。但这两个应用程序之间没有任何关系。容器内的应用程序既没有接收来自独立应用程序的消息,也没有接收其他方式的消息。我是在概念上犯了错误还是配置有问题?

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