gpt4 book ai didi

java - 从远程机器访问 Grails ActiveMQ

转载 作者:行者123 更新时间:2023-11-30 11:46:43 24 4
gpt4 key购买 nike

我是 JMS 的新手。我阅读了 JMS 和 ActiveMQ 插件文档,但仍然不清楚。

我正在尝试构建一个系统,在该系统中,托管在机器 A 上并嵌入了 ActiveMQ 的 Grail 应用程序应该能够发送消息。在机器 B 上托管的另一个 Grails 应用程序(仅带有 JMS 插件)应该能够接收消息并对其做出响应。

阅读文档后,我在机器 A 上创建了一个 grails 应用程序,其中 Controller 将消息发送到机器 A 上的服务,并在控制台上显示该消息。现在我正尝试在机器 B 上实现具有类似行为的服务。

在机器 B 上配置后,我的 resource.groovy 看起来像这样:

 1
2 import org.apache.activemq.ActiveMQConnectionFactory
3 import org.springframework.jms.connection.SingleConnectionFactory
4 beans = {
5
6 jmsConnectionFactory(SingleConnectionFactory) {
7 targetConnectionFactory = { ActiveMQConnectionFactory cf ->
8 brokerURL = 'vm://machineA.mydomain.com'
9 }
10 }
11 }

机器 A 和 B 上的服务如下所示:

1 package replicationsiteapp
2
3 import grails.plugin.jms.*
4
5 class OnNotificationService {
6
7
8 boolean transactional = false
9 static exposes = ['jms']
10 static destination = "topic.notify"
11 boolean isTopic = true
12
13
14 @Subscriber(topic = "topic.notify")
15 def onTopicMessage(it){
16
17 println " YOU GOT MESSAGE FROM : $it"
18 }
19
24 }
25

机器 A 上的 Controller :

   package hello
class NotificationController {

def index() {
def message = "Hi, this is a Hello World with JMS & ActiveMQ, " + new Date()
sendTopicJMSMessage("topic.notify",message)
render message
}
}

机器A:Unix 上的 Grails 2.1 安装了插件(ActiveMQ 和 JMS)

机器 B:Unix 上的 Grails 2.1 安装了插件 (JMS)

当前问题:

当消息从机器 A 上的 Controller 发送时机器 A 上的服务在控制台中显示消息,但机器 B 不显示消息

预期:机器 B 也应该收到消息

最佳答案

您的代理 URL 引用 VM 资源:

brokerURL = 'vm://machineA.mydomain.com'

请查看 activemq 中的连接页面:

http://activemq.apache.org/configuring-transports.html

这是最有可能帮助您的:http://activemq.apache.org/connection-configuration-uri.html

关于java - 从远程机器访问 Grails ActiveMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9626783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com