Giter Club home page Giter Club logo

jms's People

Contributors

aulea avatar berngp avatar burtbeckwith avatar codeconsole avatar github-actions[bot] avatar graemerocher avatar jindalshivali avatar joshua-moore avatar ldaley avatar pledbrook avatar rlovtangen avatar sbglasius avatar tylervz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

jms's Issues

autoStartup=false is not working in 2.0.0.RC2

Define a listener bean using parent bean as :

eventProcessorListenerContainer {
                meta {
                    parentBean = 'standardJmsListenerContainer'
                }
                concurrentConsumers = 1
                autoStartup = false
                maxMessagesPerTask = -1
                idleTaskExecutionLimit = 20
            }

But when the application server starts, the eventProcessorListenerContainer is already running (isActive=true, and isRunning=true but autoStartup=false)

I believe this is because the plugin code calls the start() method on all the listener containers.
Specifically, this piece of code in https://github.com/gpc/jms/blob/v2.0.0.RC2/src/main/groovy/grails/plugin/jms/JmsGrailsPlugin.groovy
Method doWithApplicationContext():

 void doWithApplicationContext() {
        listenerConfigs.each { serviceClassName, serviceClassListenerConfigs ->
            serviceClassListenerConfigs.each {
                startListenerContainer(it, applicationContext)
            }
        }

The code above starts all the containers irrespective of the autoStartup property.
The right thing would be to check for autoStartup property before starting the container.

Add support for Grails 4

We cannot upgrade to Grails 4.0.1 because this plugin is throwing an exception.

Right now the dependencies section in our build.gradle has the following:

compile 'org.grails.plugins:jms:2.0.0.RC2'
    compile 'org.springframework:spring-jms:5.1.5.RELEASE'
    compile 'javax.jms:javax.jms-api:2.0.1'
    runtime 'org.apache.activemq:activemq-spring:5.15.8'

And we get this error when trying to run the application:

A component required a bean named 'jmsConnectionFactory' that could not be found.

The following candidates were found but could not be injected:
	- Bean method 'jmsConnectionFactory' in 'ActiveMQXAConnectionFactoryConfiguration' not loaded because @ConditionalOnBean (types: org.springframework.boot.jms.XAConnectionFactoryWrapper; SearchStrategy: all) did not find any beans of type org.springframework.boot.jms.XAConnectionFactoryWrapper


Action:

Consider revisiting the entries above or defining a bean named 'jmsConnectionFactory' in your configuration.

I created a repo that demonstrates this. Use the jms branch.
https://github.com/tylervz/grails4jms/tree/jms

Bean standardJmsListenerContainer is absend

During startup application fails with error:

14/11 20:33:48.327 WARN org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'grailsApplicationPostProcessor': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Unsatisfied dependency expressed through method 'setConfigurers' parameter 0; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xuserJmsLogoutUserJmsListenerContainer' defined in null: Could not resolve parent bean definition 'standardJmsListenerContainer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerContainer' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xuserJmsLogoutUserJmsListenerContainer' defined in null: Could not resolve parent bean definition 'standardJmsListenerContainer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerContainer' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xuserJmsUpdateUserJmsListenerAdapter' defined in null: Could not resolve parent bean definition 'standardJmsListenerAdapter'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerAdapter' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xuserJmsAddUserJmsListenerContainer' defined in null: Could not resolve parent bean definition 'standardJmsListenerContainer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerContainer' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xxxxJmsReceiveJmsListenerContainer' defined in null: Could not resolve parent bean definition 'standardJmsListenerContainer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerContainer' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xuserJmsUpdateUserStatusNewJmsListenerContainer' defined in null: Could not resolve parent bean definition 'standardJmsListenerContainer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerContainer' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xuserJmsUpdateUsersJmsListenerContainer' defined in null: Could not resolve parent bean definition 'standardJmsListenerContainer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerContainer' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xuserJmsUpdateUsersJmsListenerAdapter' defined in null: Could not resolve parent bean definition 'standardJmsListenerAdapter'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerAdapter' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xuserJmsUpdateHotJmsListenerContainer' defined in null: Could not resolve parent bean definition 'standardJmsListenerContainer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerContainer' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xuserJmsUpdateHotJmsListenerAdapter' defined in null: Could not resolve parent bean definition 'standardJmsListenerAdapter'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerAdapter' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xuserJmsUpdateAnotherSiteJmsListenerContainer' defined in null: Could not resolve parent bean definition 'standardJmsListenerContainer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerContainer' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xxxxxJmsUpdateAnotherSiteJmsListenerAdapter' defined in null: Could not resolve parent bean definition 'standardJmsListenerAdapter'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerAdapter' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xxxxxJmsReceiveJmsListenerAdapter' defined in null: Could not resolve parent bean definition 'standardJmsListenerAdapter'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerAdapter' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xxxxxJmsAddUserJmsListenerAdapter' defined in null: Could not resolve parent bean definition 'standardJmsListenerAdapter'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerAdapter' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xxxxxJmsLogoutUserJmsListenerAdapter' defined in null: Could not resolve parent bean definition 'standardJmsListenerAdapter'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerAdapter' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xxxxxJmsUpdateUserJmsListenerContainer' defined in null: Could not resolve parent bean definition 'standardJmsListenerContainer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerContainer' is defined
Related cause: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'xxxxxJmsUpdateUserStatusNewJmsListenerAdapter' defined in null: Could not resolve parent bean definition 'standardJmsListenerAdapter'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerAdapter' is defined
14/11 20:33:48.391 ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - 

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of method setConfigurers in org.springframework.transaction.annotation.AbstractTransactionManagementConfiguration required a bean named 'standardJmsListenerContainer' that could not be found.


Action:

Consider defining a bean named 'standardJmsListenerContainer' in your configuration.


FAILURE: Build failed with an exception.

service code

class XxxxxJmsService {

  static transactional = false
  def grailsApplication

  def jmsService
  def grailsLinkGenerator

  static exposes = ["jms"]

resource.groovy:

jmsConnectionFactory(ActiveMQConnectionFactory) { //embed jms server
    brokerURL = grailsApplication.config.jms.broker.url
  }

The context startup does not take into account the setting of `auto-startup` to false.

Steps to reproduce:

Define a listener bean:

eventListenerContainer {
            concurrentConsumers = 10
            autoStartup = false
            connectionFactoryBean = "jmsConnectionFactory"
            messageSelector = null
            cacheLevel = 0
        }

When the application server starts, the eventListenerContainer is already running (isActive=true, and isRunning=true but autoStartup=false)

This seems to be because the plugin code calls the start() method on all the listener containers during application Context start irrespective of whether or not the autoStartup field is set to true.

It looks like the code in below file
https://github.com/gpc/jms/blob/master/src/main/groovy/grails/plugin/jms/JmsGrailsPlugin.groovy
Method

doWithApplicationContext():

 void doWithApplicationContext() {
        listenerConfigs.each { serviceClassName, serviceClassListenerConfigs ->
            serviceClassListenerConfigs.each {
                startListenerContainer(it, applicationContext)
            }
        }

The code above starts all the containers irrespective of the autoStartup property.

browse() methods not working with Grails 3.3 ?

I am trying to use 2.0.0.RC2 with latest Grails (3.3.9) and jmsService.browse() methods does not work for me.

The problem seems to be in JmsService#doBrowseSelected() at line "for (Message m in browser.enumeration) {".
When replaced witthout Groovy-style like "for (Message m in browser.getEnumeration()) {" it is ok.

Any clue, why ?

Not working in Grails 3.2

This is probably because, with the release of Grails 3.2, most of the deprecated methods/classes have been removed. (grails/grails-core#10124)
One of the removed classes is org.codehaus.groovy.grails.commons.GrailsClassUtils which now resides in grails.util.GrailsClassUtils (since 2014!!). The JMS plugin, however, is still looking in old location.

Error during sending messages

Due to issue #27 I have add to application.yml

jms:
    containers:
        standard:
            connectionFactoryBean: jmsConnectionFactory

    adapters:
        standard:
            messageConverterBean: standardJmsMessageConverter
            persistenceInterceptorBean: persistenceInterceptor

Application starts, but during sending message application get error

error:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsTemplate' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:704)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1175)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
at org.springframework.beans.factory.BeanFactory$getBean$3.call(Unknown Source)
at grails.plugin.jms.JmsService.normalizeServiceCtx(JmsService.groovy:381)
at sun.reflect.GeneratedMethodAccessor1971.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:174)
at grails.plugin.jms.JmsService.send(JmsService.groovy:147)
at grails.plugin.jms.JmsService.send(JmsService.groovy)
at grails.plugin.jms.JmsService$send.call(Unknown Source)

Grails 3.1.14, org.grails.plugins:jms:2.0.0.RC1

JMS Plugin 2.0.0M1 incompatible with Grails 3.2.10+

When attempting to run a Grails 3.2.10 app with the JMS plugin version 2.0.0M1, a NoClassDefFoundException is thrown on org.codehaus.groovy.grails.commons.GrailsClassUtils.

It appears that in Grails 3.2.10 or earlier that GrailsClassUtils class has been moved from org.codehaus.groovy.grails.commons to grails.util. Additionally it looks like the GrailsClassUtils class was refactored and methods such as GrailsClassUtils.getPropertyName( Class<?> clazz ) have been moved to other classes (in that method's case grails.util.GrailsNameUtils.groovy). The GrailsClassUtils class and the getPropertyName( Class<clazz> ) method are used in version 2.0.0M1 of the JMS plugin in the grails.plugins.jms.listener.ServiceInspector.groovy class.

I was able to work around this issue by creating a class in the <grails-project>/src/ org/codehaus/groovy/grails/commons directory called GrailsClassUtils that extends the grails.utils.GrailsClassUtils and implements a getPropertyName( Class<?> clazz ) method that calls the grails.utils.GetNameUtils.getPropertyNames( Class<?> clazz ) method. This workaround allowed me to run the project and send and receive messages from a message broker topic.

Unable to create durable subscriber on Topic

Hello,

Thank you so much for creating such a wonderful plug-in, I am planning to use this in my project but have a minor issue that I need your help with.

I require a durable subscriber on a topic, for some reason on Apache ActiveMQ the topic subscribers are not defined as "durable", this causes messages to be lost if the subscriber is down.

Please let me know how to define durable subscription using this plugin

Thanks,
Makarand

Custom message converter class not configurable in yaml (Description includes workaround)

Thsi relates to version 2.0.0.RC2

When configuring a custom message converter, the class specification only works in a Groovy config file, not yaml.

Example that works (Groovy):

jms {
  converters {
    events {
      clazz = events.support.jms.EventsJmsMessageConverter
    }
  }
  adapters {
    events {
      meta {
        parentBean = "standardJmsListenerAdapter"
      }
      messageConverterBean = "eventsJmsMessageConverter"
    }
  }
}

This doesn't work:

jms:
  converters:
    events:
      clazz: events.support.jms.EventsJmsMessageConverter
  adapters:
    events:
      meta:
        parentBean: standardJmsListenerAdapter
      messageConverterBean: eventsJmsMessageConverter

And the documentation states that the message converter clazz has to be under a "meta" which is incorrect. It has to be placed as a child to the custom name.

Could not find org.grails.plugins:jms:3.0.0

I've created a new Grails 4 app

grails create-app forms_grails4 

I'm now trying to install the JMS plugin, so I edit the build.gradle file, as per JMS plugin page and add dependency line as follows:

dependencies {
...
    compile "org.grails.plugins:jms:3.0.0"
}

Running ./gradlew build I get error while trying to resolve JMS plugin:

$ ./gradlew build
Downloading https://services.gradle.org/distributions/gradle-5.6.4-bin.zip
.........................................................................................

Welcome to Gradle 5.6.4!

Here are the highlights of this release:
 - Incremental Groovy compilation
 - Groovy compile avoidance
 - Test fixtures for Java projects
 - Manage plugin versions via settings script

For more details see https://docs.gradle.org/5.6.4/release-notes.html

Starting a Gradle Daemon (subsequent builds will be faster)

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'forms_grails4'.
> Could not resolve all files for configuration ':runtime'.
   > Could not find org.grails.plugins:jms:3.0.0.
     Searched in the following locations:
       - https://repo.grails.org/grails/core/org/grails/plugins/jms/3.0.0/jms-3.0.0.pom
       - https://repo.grails.org/grails/core/org/grails/plugins/jms/3.0.0/jms-3.0.0.jar
     Required by:
         project :

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 36s
  1. Have I got the dependency specified correctly?
  2. Is there a different repository I need to add to get access to this version of the JMS plugin?

Multiple Service Listeners created when using @Queue Annotation

When exposing a method of a Grails Service as a message listener using the Queue annotation with a name parameter derived from configuration key two listeners are created for the same method:

  1. A listener with a default name: <<app.name>>.<service.name>
  2. A listener with the name defined in the queue annotation name parameter.

Is there any way to suppress the default listener from being created?

Example code similar to my code, per the docs.

import grails.plugin.jms.*class PersonService {
   static exposes = ["jms"]

   @Queue(name = '$queue.key.in.config')
   def someWorkToDo(msg) {
   }
}

Here's my configuration:

Grails 3.2.10
Grails JMS Plugin 2.0.0RC2
ActiveMQ-Spring 5.14.1
Apache ActiveMQ 5.9.1

No bean named 'standardJmsListenerAdapter' is defined

Hi, I just updated to 2.0.0.RC1 and I've got this captioned error. Grails version: 3.0.10. It was working before the update. Should I include any extra configuration in order to make this bean created by the plugin visible?

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerAdapter' is defined at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687) ~[spring-beans-4.1.8.RELEASE.jar:4.1.8.RELEASE]

Any ideas?

Grails3 version missing beans when running as a jar

Using Grails 3.0.1, Java 8, JMS plugin 2.0.0.M1

Our service has:

static exposes = ['jms']
static container = "other"

void onMessage(message) { 
    // ...
}

The standardJmsListenerContainer bean is not present when running as a jar
java -jar -Dgrails.env=development build/libs/appName-1.0.jar

There is no error when running with run or bootRun or running the war, but when running the jar I'm getting a NoSuchBeanDefinitionException.

Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'otherJmsListenerContainer' defined in null: Could
not resolve parent bean definition 'standardJmsListenerContainer'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named 'standardJmsListenerContainer' is defined
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:1238)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:1182)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1168)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:428)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:404)
        at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:186)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1105)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:969)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1288)
        ... 54 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'standardJmsListenerContainer' is defined
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1168)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:946)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:1223)
        ... 63 more

Here is the jms config for our container:

jms:
    containers:
        other:
            meta:
                parentBean: 'standardJmsListenerContainer'
            sessionTransacted: true

ActiveMQ Example fails due to wrong bean name

When using the example config in chapter 2:

spring:
    activemq:
        brokerUrl: vm://localhost
        pooled: true

my application fails on startup with "NoSuchBeanDefinitionException: No bean named 'jmsConnectionFactory' is defined"
This is because the bean is called pooledJmsConnectionFactory, not jmsConnectionFactory when pooled is true. Looks like this is due to bean definitions in ActiveMQConnectionFactoryConfiguration:

    @Bean
    @ConditionalOnProperty(prefix = "spring.activemq", name = "pooled", havingValue = "false", matchIfMissing = true)
    public ActiveMQConnectionFactory jmsConnectionFactory(ActiveMQProperties properties) {

    ...

    @Bean(destroyMethod = "stop")
    @ConditionalOnProperty(prefix = "spring.activemq", name = "pooled", havingValue = "true", matchIfMissing = false)
    public PooledConnectionFactory pooledJmsConnectionFactory(

One option is of course to set pooled to false.
If setting pooled to true, I can change the expected name by adding the following to application.yml:

jms:
    templates:
        standard:
            connectionFactoryBean: pooledJmsConnectionFactory

Application is then able to start.

But if I add a service which listens to a topic:

class FooService {

    static exposes = ["jms"]

    @Subscriber(topic = "My.topic")
    def bar(msg) {
        println msg
    }
}

I get a NoSuchBeanDefinitionException again because this service obviously also expects a bean named jmsConnectionFactory.
Maybe I can fix this by defining container and adapter as pr chapter 5. But another work-around I found is to add a bean alias to resources.groovy:

beans = {
    springConfig.addAlias 'jmsConnectionFactory', 'pooledJmsConnectionFactory'
}

I'm then able to receive messages from topic.
Is there a better way? Should the documentation include some more information on this?

java.lang.NoClassDefFoundError: org/codehaus/groovy/grails/commons/GrailsClassUtils

Seems like grails 3.3.0 does not have org/codehaus/groovy/grails/commons/GrailsClassUtils
But jms plugin is using this in the ServiceInspector

BTW I am using 2.0.0 M1 jms plugin

Building 85% > :bootRun
java.lang.NoClassDefFoundError: org/codehaus/groovy/grails/commons/GrailsClassUtils
at grails.plugin.jms.listener.ServiceInspector.exposesJms(ServiceInspector.groovy:69)
at grails.plugin.jms.listener.ServiceInspector$exposesJms$0.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
at grails.plugin.jms.listener.ServiceInspector.getListenerConfigs(ServiceInspector.groovy:35)
at grails.plugin.jms.listener.ServiceInspector$getListenerConfigs.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)
at grails.plugin.jms.JmsGrailsPlugin.getListenerConfigs(JmsGrailsPlugin.groovy:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:174)
at grails.plugin.jms.JmsGrailsPlugin$_doWithSpring_closure1$_closure3.doCall(JmsGrailsPlugin.groovy:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1890)
at org.codehaus.groovy.runtime.dgm$159.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:87)
at grails.plugin.jms.JmsGrailsPlugin$_doWithSpring_closure1.doCall(JmsGrailsPlugin.groovy:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:408)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:759)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:588)
at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:531)
at org.grails.plugins.DefaultGrailsPlugin.doWithRuntimeConfiguration(DefaultGrailsPlugin.java:559)
at org.grails.plugins.AbstractGrailsPluginManager.doRuntimeConfiguration(AbstractGrailsPluginManager.java:167)
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:171)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:686)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:524)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:372)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
at grails.boot.GrailsApp.run(GrailsApp.groovy:83)
at grails.boot.GrailsApp.run(GrailsApp.groovy:388)
at grails.boot.GrailsApp.run(GrailsApp.groovy:375)
at grails.boot.GrailsApp$run.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at web.Application.main(Application.groovy:8)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.grails.commons.GrailsClassUtils
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 78 common frames omitted

2017-09-06 11:51:24.705 ERROR --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Destroy method on bean with name 'grailsApplicationPostProcessor' threw an exception

java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1e34c607: startup date [Wed Sep 06 11:51:20 EDT 2017]; root of context hierarchy
at org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.java:404)
at org.springframework.context.support.ApplicationListenerDetector.postProcessBeforeDestruction(ApplicationListenerDetector.java:97)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:253)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:961)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:968)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1033)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1009)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:961)
at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:819)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at grails.boot.GrailsApp.run(GrailsApp.groovy:83)
at grails.boot.GrailsApp.run(GrailsApp.groovy:388)
at grails.boot.GrailsApp.run(GrailsApp.groovy:375)
at grails.boot.GrailsApp$run.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at web.Application.main(Application.groovy:8)

2017-09-06 11:51:24.710 ERROR --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Destroy method on bean with name 'org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory' threw an exception

java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1e34c607: startup date [Wed Sep 06 11:51:20 EDT 2017]; root of context hierarchy
at org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.java:404)
at org.springframework.context.support.ApplicationListenerDetector.postProcessBeforeDestruction(ApplicationListenerDetector.java:97)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:253)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:961)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:968)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1033)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1009)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:961)
at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:819)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at grails.boot.GrailsApp.run(GrailsApp.groovy:83)
at grails.boot.GrailsApp.run(GrailsApp.groovy:388)
at grails.boot.GrailsApp.run(GrailsApp.groovy:375)
at grails.boot.GrailsApp$run.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at web.Application.main(Application.groovy:8)

Building 85% > :bootRun:bootRun FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':bootRun'.

Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Default activemq configuration fails without KahaDB Store dependencie

Is it bug? Or is it not included in documentation that this dependencie is required by activeMq?

Before adding

runtime 'org.apache.activemq:activemq-kahadb-store:5.11.1'

Application would fail to launch:

ERROR org.apache.activemq.broker.BrokerService - Failed to start Apache ActiveMQ ([localhost, null], {})
java.io.IOException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
        at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:39) ~[activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.createPersistenceAdapter(BrokerService.java:2373) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.getPersistenceAdapter(BrokerService.java:1188) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.doStartPersistenceAdapter(BrokerService.java:645) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.startPersistenceAdapter(BrokerService.java:640) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.start(BrokerService.java:605) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.vm.VMTransportFactory.doCompositeConnect(VMTransportFactory.java:126) [activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.vm.VMTransportFactory.doConnect(VMTransportFactory.java:55) [activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:64) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:317) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:332) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:305) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:245) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:276) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory$1.makeObject(PooledConnectionFactory.java:108) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory$1.makeObject(PooledConnectionFactory.java:88) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.commons.pool.impl.GenericKeyedObjectPool.addObject(GenericKeyedObjectPool.java:1748) [commons-pool-1.6.jar:1.6]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:222) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:205) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:180) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.AbstractJmsListeningContainer.createSharedConnection(AbstractJmsListeningContainer.java:413) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.AbstractJmsListeningContainer.establishSharedConnection(AbstractJmsListeningContainer.java:381) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer.establishSharedConnection(DefaultMessageListenerContainer.java:788) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.AbstractJmsListeningContainer.doStart(AbstractJmsListeningContainer.java:285) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.AbstractJmsListeningContainer.start(AbstractJmsListeningContainer.java:270) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer.start(DefaultMessageListenerContainer.java:589) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.context.Lifecycle$start.call(Unknown Source) [spring-context-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) [groovy-2.4.5.jar:2.4.5]
        at grails.plugin.jms.JmsGrailsPlugin.startListenerContainer(JmsGrailsPlugin.groovy:96) [jms-2.0.0.M1.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
        at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
        at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426) [springloaded-1.2.4.RELEASE.jar:1.2.4.RELEASE]
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-2.4.5.jar:2.4.5]
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384) [groovy-2.4.5.jar:2.4.5]
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:174) [groovy-2.4.5.jar:2.4.5]
        at grails.plugin.jms.JmsGrailsPlugin$_doWithApplicationContext_closure2$_closure5.doCall(JmsGrailsPlugin.groovy:77) [jms-2.0.0.M1.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
        at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
        at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426) [springloaded-1.2.4.RELEASE.jar:1.2.4.RELEASE]
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-2.4.5.jar:2.4.5]
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-2.4.5.jar:2.4.5]
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-2.4.5.jar:2.4.5]
        at groovy.lang.Closure.call(Closure.java:426) [groovy-2.4.5.jar:2.4.5]
        at groovy.lang.Closure.call(Closure.java:442) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2056) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.dgm$162.invoke(Unknown Source) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-2.4.5.jar:2.4.5]
        at grails.plugin.jms.JmsGrailsPlugin$_doWithApplicationContext_closure2.doCall(JmsGrailsPlugin.groovy:76) [jms-2.0.0.M1.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65]
        at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65]
        at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426) [springloaded-1.2.4.RELEASE.jar:1.2.4.RELEASE]
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-2.4.5.jar:2.4.5]
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-2.4.5.jar:2.4.5]
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-2.4.5.jar:2.4.5]
        at groovy.lang.Closure.call(Closure.java:426) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:5226) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2107) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-2.4.5.jar:2.4.5]
        at grails.plugin.jms.JmsGrailsPlugin.doWithApplicationContext(JmsGrailsPlugin.groovy:75) [jms-2.0.0.M1.jar:na]
        at org.grails.plugins.DefaultGrailsPlugin.doWithApplicationContext(DefaultGrailsPlugin.java:524) [grails-core-3.0.9.jar:3.0.9]
        at org.grails.plugins.AbstractGrailsPluginManager.doPostProcessing(AbstractGrailsPluginManager.java:229) [grails-core-3.0.9.jar:3.0.9]
        at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy:220) [grails-core-3.0.9.jar:3.0.9]
        at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy) [grails-core-3.0.9.jar:3.0.9]
        at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:151) [spring-context-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:128) [spring-context-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:331) [spring-context-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:773) [spring-context-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:140) [spring-boot-1.2.6.RELEASE.jar:1.2.6.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483) [spring-context-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) [spring-boot-1.2.6.RELEASE.jar:1.2.6.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:687) [spring-boot-1.2.6.RELEASE.jar:1.2.6.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) [spring-boot-1.2.6.RELEASE.jar:1.2.6.RELEASE]
        at grails.boot.GrailsApp.run(GrailsApp.groovy:52) [grails-core-3.0.9.jar:3.0.9]
        at grails.boot.GrailsApp.run(GrailsApp.groovy:330) [grails-core-3.0.9.jar:3.0.9]
        at grails.boot.GrailsApp.run(GrailsApp.groovy:319) [grails-core-3.0.9.jar:3.0.9]
        at grails.boot.GrailsApp$run.call(Unknown Source) [grails-core-3.0.9.jar:3.0.9]
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-2.4.5.jar:2.4.5]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) [groovy-2.4.5.jar:2.4.5]
        at blog.Application.main(Application.groovy:16) [main/:na]
Caused by: java.lang.ClassNotFoundException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_65]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_65]
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_65]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_65]
        at org.apache.activemq.broker.BrokerService.createPersistenceAdapter(BrokerService.java:2368) ~[activemq-broker-5.11.1.jar:5.11.1]
        ... 104 common frames omitted
Grails application running at http://localhost:8080 in environment: development
ERROR org.apache.activemq.broker.BrokerService - Failed to start Apache ActiveMQ ([localhost, null], {})
java.io.IOException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
        at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:39) ~[activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.createPersistenceAdapter(BrokerService.java:2373) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.getPersistenceAdapter(BrokerService.java:1188) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.doStartPersistenceAdapter(BrokerService.java:645) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.startPersistenceAdapter(BrokerService.java:640) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.start(BrokerService.java:605) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.vm.VMTransportFactory.doCompositeConnect(VMTransportFactory.java:126) [activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.vm.VMTransportFactory.doConnect(VMTransportFactory.java:55) [activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:64) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:317) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:332) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:305) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:245) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:276) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory$1.makeObject(PooledConnectionFactory.java:108) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory$1.makeObject(PooledConnectionFactory.java:88) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.commons.pool.impl.GenericKeyedObjectPool.addObject(GenericKeyedObjectPool.java:1748) [commons-pool-1.6.jar:1.6]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:222) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:205) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:180) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.AbstractJmsListeningContainer.createSharedConnection(AbstractJmsListeningContainer.java:413) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:398) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:909) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:884) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1055) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65]
Caused by: java.lang.ClassNotFoundException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_65]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_65]
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_65]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_65]
        at org.apache.activemq.broker.BrokerService.createPersistenceAdapter(BrokerService.java:2368) ~[activemq-broker-5.11.1.jar:5.11.1]
        ... 24 common frames omitted
ERROR org.springframework.jms.listener.DefaultMessageListenerContainer - Could not refresh JMS Connection for destination 'jabberOut' - retrying using FixedBackOff{interval=5000, currentAttempts=0, maxAttempts=unlimited}. Cause: Error while attempting to add new Connection to the pool; nested exception is javax.jms.JMSException: Could not create Transport. Reason: java.io.IOException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
ERROR org.apache.activemq.broker.BrokerService - Failed to start Apache ActiveMQ ([localhost, null], {})
java.io.IOException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
        at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:39) ~[activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.createPersistenceAdapter(BrokerService.java:2373) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.getPersistenceAdapter(BrokerService.java:1188) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.doStartPersistenceAdapter(BrokerService.java:645) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.startPersistenceAdapter(BrokerService.java:640) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.start(BrokerService.java:605) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.vm.VMTransportFactory.doCompositeConnect(VMTransportFactory.java:126) [activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.vm.VMTransportFactory.doConnect(VMTransportFactory.java:55) [activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:64) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:317) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:332) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:305) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:245) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:276) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory$1.makeObject(PooledConnectionFactory.java:108) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory$1.makeObject(PooledConnectionFactory.java:88) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.commons.pool.impl.GenericKeyedObjectPool.addObject(GenericKeyedObjectPool.java:1748) [commons-pool-1.6.jar:1.6]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:222) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:205) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:180) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.AbstractJmsListeningContainer.createSharedConnection(AbstractJmsListeningContainer.java:413) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:398) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:909) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:884) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1055) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65]
Caused by: java.lang.ClassNotFoundException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_65]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_65]
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_65]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_65]
        at org.apache.activemq.broker.BrokerService.createPersistenceAdapter(BrokerService.java:2368) ~[activemq-broker-5.11.1.jar:5.11.1]
        ... 24 common frames omitted
ERROR org.springframework.jms.listener.DefaultMessageListenerContainer - Could not refresh JMS Connection for destination 'jabberOut' - retrying using FixedBackOff{interval=5000, currentAttempts=1, maxAttempts=unlimited}. Cause: Error while attempting to add new Connection to the pool; nested exception is javax.jms.JMSException: Could not create Transport. Reason: java.io.IOException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
ERROR org.apache.activemq.broker.BrokerService - Failed to start Apache ActiveMQ ([localhost, null], {})
java.io.IOException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
        at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:39) ~[activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.createPersistenceAdapter(BrokerService.java:2373) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.getPersistenceAdapter(BrokerService.java:1188) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.doStartPersistenceAdapter(BrokerService.java:645) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.startPersistenceAdapter(BrokerService.java:640) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.broker.BrokerService.start(BrokerService.java:605) ~[activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.vm.VMTransportFactory.doCompositeConnect(VMTransportFactory.java:126) [activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.vm.VMTransportFactory.doConnect(VMTransportFactory.java:55) [activemq-broker-5.11.1.jar:5.11.1]
        at org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:64) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:317) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:332) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:305) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:245) [activemq-client-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:276) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory$1.makeObject(PooledConnectionFactory.java:108) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory$1.makeObject(PooledConnectionFactory.java:88) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.commons.pool.impl.GenericKeyedObjectPool.addObject(GenericKeyedObjectPool.java:1748) [commons-pool-1.6.jar:1.6]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:222) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.apache.activemq.jms.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:205) [activemq-jms-pool-5.11.1.jar:5.11.1]
        at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:180) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.AbstractJmsListeningContainer.createSharedConnection(AbstractJmsListeningContainer.java:413) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:398) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:909) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:884) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1055) [spring-jms-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65]
Caused by: java.lang.ClassNotFoundException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_65]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_65]
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_65]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_65]
        at org.apache.activemq.broker.BrokerService.createPersistenceAdapter(BrokerService.java:2368) ~[activemq-broker-5.11.1.jar:5.11.1]
        ... 24 common frames omitted
ERROR org.springframework.jms.listener.DefaultMessageListenerContainer - Could not refresh JMS Connection for destination 'jabberOut' - retrying using FixedBackOff{interval=5000, currentAttempts=2, maxAttempts=unlimited}. Cause: Error while attempting to add new Connection to the pool; nested exception is javax.jms.JMSException: Could not create Transport. Reason: java.io.IOException: org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter

JMS Properties and Headers

Hello,

Are JMS properties supported by the plugin?

In the Java way it would be done working with the "Message" object it self ... how would be the prefered way to get/set JMS properties in grails?

Thanks.

From 2.0 branch is missing pluginLoadOrder fix

In main branch was fix for plugin load order "added dataSource to loadAfter" dee0630

Need to describe plugin's load order, so that it will be loaded after everything related to dataSource is ready.
Fix in \src\main\groovy\grails\plugin\jmsJmsGrailsPlugin.groovy
def loadAfter = ['services', 'controllers','dataSource','hibernate', 'hibernate4']
And with Grails 3.2 there is also hibernate5

Grails documentation about plugin load order
http://docs.grails.org/latest/guide/plugins.html#understandingPluginLoadOrder

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.