【问题标题】:Grails 2.0.1 : async messaging: `jmsConnectionFactory` compilation errorGrails 2.0.1:异步消息传递:`jmsConnectionFactory` 编译错误
【发布时间】:2012-02-26 12:34:53
【问题描述】:

我有 resource.groovy

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 编译器 1.8.6

【问题讨论】:

    标签: spring grails groovy javabeans


    【解决方案1】:

    我一直在Grails中配置ActiveMQ如下:

    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'
            }
        }
    }
    

    【讨论】:

    • 只是一个快速的问题,如果我想要来自同一主机上不同项目的 JMS 服务提供者,那么如果我在两个项目(消费者 + 服务提供者)中安装 jms 插件,它会产生端口冲突,所以很快关于如何使用一些配置来处理它的想法
    • @Jigar Joshi:你找到解决方案了吗?
    【解决方案2】:

    这可能是伪装的 ClassNotFound 错误。尝试添加导入语句:

    import org.apache.activemq.ActiveMQConnectionFactory

    看看你是否得到了 ClassNotFoundError,如果是,那么这只是追踪丢失的依赖项的问题。

    【讨论】:

    • 只是一个快速的问题,如果我想要来自同一主机上不同项目的 JMS 服务提供者,那么如果我在两个项目(消费者 + 服务提供者)中安装 jms 插件,它会产生端口冲突,所以很快关于如何使用一些配置来处理它的想法
    • 如果我理解正确的场景,这不是我曾经遇到过的事情。如果有任何想法,我会考虑并回复。
    • 好的,谢谢,关于分离消费者和经纪人
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 2011-08-27
    • 2018-06-26
    • 1970-01-01
    • 2018-07-15
    相关资源
    最近更新 更多