我是新來的JMS的東西..我讀了JMS和ActiveMQ的插件文件,但仍與它不明確。訪問的Grails的ActiveMQ從遠程計算機
我想建立一個系統,其中託管在機器A內嵌有一個的ActiveMQ聖盃的應用程序應該能夠發送消息的。而另一個只有JMS插件的機器B上託管的Grails應用程序應該能夠接收消息並對其作出響應。
閱讀文檔後我創建機器A一個Grails應用,在那裏控制器發送到上機服務的消息,並將它顯示在控制檯的消息。現在我想實現對機器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上的控制器:
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
}
}
機答: 的Grails 2.1在Unix與已安裝的插件(ActiveMQ的和JMS)
機B: 的Grails 2.1在Unix與已安裝的插件(JMS)
本期:
當從控制器發送的消息上機上機A A 服務在控制檯顯示消息,但機器B不列入
預期: 機B還應當接收消息
感謝約翰:但是我還是「TCP://machineA.mydomain.com:61616 jms.useAsyncSend =真正的」,但即使沒有工作......會嘗試看看是否h ttp在您的服務器machineA上運行 – 2012-03-09 00:55:28
,您是否啓用了偵聽器? – 2012-03-10 00:45:21
嘿約翰..... OnNotificationService是監聽器。我在機器A和機器B上都實現了完全相同的監聽器。當我從機器A發送消息時,我看到消息打印在機器A的控制檯上,但未在機器B的控制檯上打印。 – 2012-03-15 21:13:56