Grails 2.0.1: асинхронный обмен сообщениями: ошибка компиляции `jmsConnectionFactory` - PullRequest
1 голос
/ 26 февраля 2012

у меня есть ресурс.гроовой

beans = {
    jmsConnectionFactory(org.apache.activemq.ActiveMQConnectionFactory) { brokerURL = 'vm://localhost' }
}

и на бегу он говорит

 Running Grails application
| Error 2012-02-24 18:02:13,490 [pool-6-thread-1] ERROR spring.GrailsRuntimeConfigurator  - [RuntimeConfiguration] Unable to load beans from resources.groovy
Message: No such property: org for class: resources
   Line | Method
->>   3 | doCall                    in resources$_run_closure1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   736 | invokeBeanDefiningClosure in grails.spring.BeanBuilder
|   569 | beans . . . . . . . . . . in     ''
|   736 | invokeBeanDefiningClosure in     ''
|   569 | beans . . . . . . . . . . in     ''
|   511 | invokeMethod              in     ''
|   303 | innerRun . . . . . . . .  in java.util.concurrent.FutureTask$Sync
|   138 | run                       in java.util.concurrent.FutureTask
|   886 | runTask . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
|   908 | run                       in     ''
^   662 | run . . . . . . . . . . . in java.lang.Thread
| Error 2012-02-24 18:02:16,537 [pool-6-thread-1] ERROR context.GrailsContextLoader  - Error executing bootstraps: Error creating bean with name 'delayedCreateMessageJmsListenerContainer': Cannot resolve reference to bean 'jmsConnectionFactory' while setting bean property 'connectionFactory'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'jmsConnectionFactory' is defined
Message: Error creating bean with name 'delayedCreateMessageJmsListenerContainer': Cannot resolve reference to bean 'jmsConnectionFactory' while setting bean property 'connectionFactory'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'jmsConnectionFactory' is defined

До обновления все работало хорошо, после обновления до 2.0.1 не получилось с этой ошибкой, я использую groovy compiler 1.8.6

Ответы [ 2 ]

5 голосов
/ 26 февраля 2012

Я всегда настраивал ActiveMQ в Grails следующим образом:

BuildConfig.groovy

dependencies {
    compile 'org.apache.activemq:activemq-core:5.5.0'
}

resources.groovy

import org.springframework.jms.connection.SingleConnectionFactory
import org.apache.activemq.ActiveMQConnectionFactory

beans = {
    jmsConnectionFactory(SingleConnectionFactory) {
        targetConnectionFactory = { ActiveMQConnectionFactory cf ->
            brokerURL = 'vm://localhost'
        }
    }
}
2 голосов
/ 26 февраля 2012

Это может быть скрытая ошибка ClassNotFound. Попробуйте добавить оператор импорта:

import org.apache.activemq.ActiveMQConnectionFactory

и посмотрите, получите ли вы ClassNotFoundError, если так, то это просто вопрос отслеживания отсутствующей зависимости.

...