Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-4155

Can't start Blueprint broker in Apache Karaf without having Spring JARs

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Abandoned
    • 5.8.0
    • AGING_TO_DIE
    • Broker
    • None
    • Apache Karaf 2.3.0

    Description

      ActiveMQ 5.8-SNAPSHOT (compiled from trunk) is unable to start blueprint broker:

      karaf@root> features:addurl mvn:org.apache.activemq/activemq-karaf/5.8-SNAPSHOT/xml/features
      karaf@root> features:install activemq activemq-blueprint
      karaf@root> activemq:create-broker -t blueprint
      Creating file: @|green /usr/java/apache-karaf-2.3.0/deploy/localhost-broker.xml|
      
      Default ActiveMQ Broker (localhost) configuration file created at: /usr/java/apache-karaf-2.3.0/deploy/localhost-broker.xml
      Please review the configuration and modify to suite your needs.  
      
      0
      
      karaf@root> la | grep localhost-broker
      [ 105] [Active     ] [Failure     ] [   80] localhost-broker.xml (0.0.0)
      

      Blueprint component doesn't start due to the NoClassDefFoundError:

      2012-11-02 16:26:24,702 | ERROR | rint Extender: 3 | BlueprintContainerImpl           | container.BlueprintContainerImpl  375 | 7 - org.apache.aries.blueprint.core - 1.0.1 | Unable to start blueprint container for bundle localhost-broker.xml
      org.osgi.service.blueprint.container.ComponentDefinitionException: Error when instanciating bean .component-2 of class class org.apache.activemq.xbean.XBeanBrokerService
      	at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:333)[7:org.apache.aries.blueprint.core:1.0.1]
      	at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:806)[7:org.apache.aries.blueprint.core:1.0.1]
      	at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)[7:org.apache.aries.blueprint.core:1.0.1]
      	at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[7:org.apache.aries.blueprint.core:1.0.1]
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_37]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_37]
      	at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[7:org.apache.aries.blueprint.core:1.0.1]
      	at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245)[7:org.apache.aries.blueprint.core:1.0.1]
      	at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183)[7:org.apache.aries.blueprint.core:1.0.1]
      	at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:646)[7:org.apache.aries.blueprint.core:1.0.1]
      	at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:353)[7:org.apache.aries.blueprint.core:1.0.1]
      	at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:252)[7:org.apache.aries.blueprint.core:1.0.1]
      	at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[7:org.apache.aries.blueprint.core:1.0.1]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)[:1.6.0_37]
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_37]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_37]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_37]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_37]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_37]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_37]
      	at java.lang.Thread.run(Thread.java:662)[:1.6.0_37]
      Caused by: java.lang.NoClassDefFoundError: org/springframework/beans/BeansException
      	at org.apache.activemq.xbean.XBeanBrokerService.<init>(XBeanBrokerService.java:47)
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)[:1.6.0_37]
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)[:1.6.0_37]
      	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)[:1.6.0_37]
      	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)[:1.6.0_37]
      	at org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:329)
      	at org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:962)
      	at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:331)
      	... 20 more
      Caused by: java.lang.ClassNotFoundException: org.springframework.beans.BeansException not found by org.apache.activemq.activemq-core [99]
      	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460)
      	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
      	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)[:1.6.0_37]
      	... 28 more
      

      This problem can be solved by installing activemq-spring feature, but it seems to be overkill to have full Spring stack to run Blueprint ActiveMQ broker.

      Attachments

        Activity

          People

            Unassigned Unassigned
            kapyar Victor Antonovich
            Votes:
            2 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: