【问题标题】:grails activemq application doesn't work for jelastic paasgrails activemq 应用程序不适用于 jelastic paas
【发布时间】:2016-03-07 13:26:56
【问题描述】:

尝试将我的 grails 应用程序部署到 jelastic 环境并配置适当的 TomEE 应用程序服务器以及与 activemq 相关的所有插件我在服务器上遇到以下异常:

INFO: For help or more information please see: http://activemq.apache.org
2016-03-06 20:04:17,194 [localhost-startStop-1] ERROR context.GrailsContextLoader  - Error initializing the application: Error creating bean with name 'myBrokerService': Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.apache.activemq.usage.TempUsage.getStore()Lorg/apache/activemq/store/kahadb/plist/PListStore;
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myBrokerService': Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.apache.activemq.usage.TempUsage.getStore()Lorg/apache/activemq/store/kahadb/plist/PListStore;
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoSuchMethodError: org.apache.activemq.usage.TempUsage.getStore()Lorg/apache/activemq/store/kahadb/plist/PListStore;
    at org.apache.activemq.xbean.XBeanBrokerService.ensureSystemUsageHasStore(XBeanBrokerService.java:72)
    at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:56)
    ... 5 more

在我的本地环境中,我将 IntelliJ 与嵌入式 tomcat 和 tomEE 服务器一起使用,它可以正常工作。我想这个问题与 activemq 没有足够的权限在磁盘上创建一些文件有关。不幸的是,我无法弄清楚问题出在哪里。任何建议都非常感谢。

【问题讨论】:

  • 基于NoSuchMethodError,我会说服务器上的ActiveMQ Java库版本与您在本地使用的版本不匹配
  • 您使用的是嵌入式 ActiveMQ 插件吗?
  • @droggo: 我在项目中使用的依赖项: compile 'org.apache.activemq:activemq-core:5.7.0' compile 'org.apache.activemq:activemq-spring:5.7.0 ' 编译 'org.springframework:spring-beans:4.0.6.RELEASE' 编译 'org.apache.xbean:xbean-spring:4.1'
  • 哪个版本的 Grails? 2、3?
  • @Arjang:Grails 2.2.4

标签: grails activemq apache-tomee jelastic


【解决方案1】:

在下面找到适用于 Jelastic(tomcat 7、java7、grails 2.2.4)环境的解决方案:

BuildConfig.groovy:

compile 'org.grails.plugins:jms:1.3'
compile 'org.apache.activemq:activemq-core:5.7.0'
compile 'org.apache.xbean:xbean-spring:4.1'

resources.groovy:

import org.apache.activemq.broker.TransportConnector
import org.apache.activemq.xbean.XBeanBrokerService
import org.springframework.jms.connection.SingleConnectionFactory

beans = {

tcpConnector(TransportConnector,uri:'tcp://localhost:61616'){}

connectors(ArrayList,[ref('tcpConnector')]){}
myBrokerService(XBeanBrokerService){bean->
    myBrokerService.useJmx = false
    myBrokerService.persistent = true
    myBrokerService.dataDirectory = 'my-activemq_data'
    myBrokerService.transportConnectors = ref('connectors')
}
amqConnectionFactory(org.apache.activemq.ActiveMQConnectionFactory) {
    brokerURL = 'vm://localhost'
}

jmsConnectionFactory(SingleConnectionFactory) { bean ->
    targetConnectionFactory = ref(amqConnectionFactory)
 }
}

嵌入式 activemq 启动时没有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 2016-04-06
    • 2023-03-19
    • 2015-04-29
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多