1

ActiveMQ の初心者として、Grails からキューに接続しようとしました。JMS プラグイン、ActiveMQ プラグイン、および「The Definitive Guide to Grails」という本を調べました。

この本は、いくつかの瓶を落とし、いくつかの豆を配線するだけでよいことを示しています。

jmsFactory(org.apache.activemq.pool.PooledConnectionFactory) { bean ->
    bean.destroyMethod = "stop"
    connectionFactory = { org.apache.activemq.ActiveMQConnectionFactory cf ->
        brokerURL = "tcp://localhost:61616"
    }
}
jmsTemplate(org.springframework.jms.core.JmsTemplate) {
    connectionFactory = jmsFactory
}
jmsMessageListener(org.springframework.jms.listener.adapter.MessageListenerAdapter, ref("messageService")) {
    defaultListenerMethod = "onMessage"
}
jmsContainer(org.springframework.jms.listener.DefaultMessageListenerContainer) {
    connectionFactory = jmsFactory
    destinationName = "demoQueue"
    messageListener = jmsMessageListener
    transactionManager = ref("transactionManager")
    autoStartup = false
}    

私はそれをテストしましたが、それは魔法のように機能するようです。トランザクションも機能します。

プラグインのいずれかを使用する必要はありますか? 私は何かが恋しいですか?

4

1 に答える 1

3

いいえ、プラグインを自分で統合する場合は、プラグインを使用する必要はありません。

jms プラグインを使用し、ActiveMQ を手動で構成します。

BuildConfig.groovyへの JMS プラグインと ActiveMQ jar の組み込みを自動化できます。

repositories {
    ...
    mavenCentral()
    ...
}
plugins {
    ...
    runtime ":jms:1.2"
    ...
}
dependencies {
    ...
    compile "org.apache.activemq:activemq-core:5.5.1"
    ...
}

そして、spring/resources.groovyで ActiveMQ 組み込みブローカーを構成します。

beans = {
    ...
    jmsConnectionFactory(SingleConnectionFactory) {
        targetConnectionFactory = { ActiveMQConnectionFactory cf ->
            brokerURL = "vm://localhost"
        }
    }
    ...
}

外部ブローカーを使用しているため、組み込みブローカーは必要ないと思います。

外部ブローカーを使用するには、 spring/resources.groovyで定義されている brokerURL を変更するだけです。


JMS プラグインはどうですか。使用するとどのようなメリットがありますか?

JMS プラグインは、便利な Grails 統合を提供します。詳細については、Grails JMS プラグイン 1.2 リファレンスを参照してください。

于 2012-06-21T18:50:09.187 に答える