You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@aries.apache.org by Martin Lichtin <li...@yahoo.com> on 2012/09/19 17:36:12 UTC

Cannot create MBeanServer and inject into MBeanExporter

Hi
I'm running into an issue when trying to configure a JMX bean.
My configuration, according to http://www.atomikos.com/Documentation/SpringIntegration#JMX_Administration_of_Atomikos_T,
is as follows:
 
       <beanid="jmxTransactionService" class="com.atomikos.icatch.admin.jmx.JmxTransactionService">
       </bean>
       <beanid="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"/>
       <beanid="exporter" class="org.springframework.jmx.export.MBeanExporter">
        <propertyname="beans">
            <map>
                <entrykey="atomikos:name=tx-service" value-ref="jmxTransactionService"/>
            </map>
        </property>
        <propertyname="server" ref="mbeanServer"/>
       </bean>
 
Then the exception is:
 
org.osgi.service.blueprint.container.ComponentDefinitionException: Error setting property: PropertyDescriptor <name: server, getter:
class org.springframework.jmx.support.MBeanRegistrationSupport.getServer(,
setter: [class org.springframework.jmx.support.MBeanRegistrationSupport.setServer(interface
javax.management.MBeanServer]
       at
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:821)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:787)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:768)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:722)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:631)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:337)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:230)[9:org.apache.aries.blueprint:0.3.2]
       at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_26]
       at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_26]
       at
java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_26]
       at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_26]
       at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_26]
       at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_26]
       at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_26]
       at java.lang.Thread.run(Thread.java:662)[:1.6.0_26]
Caused by: java.lang.Exception: Unable to convert value org.springframework.jmx.support.MBeanServerFactoryBean@5de39029 to type javax.management.MBeanServer
       at
org.apache.aries.blueprint.container.AggregateConverter.convert(AggregateConverter.java:172)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:373)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.convert(ReflectionUtils.java:322)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.utils.ReflectionUtils$MethodPropertyDescriptor.internalSet(ReflectionUtils.java:555)[9:org.apache.aries.blueprint:0.3.2]
       at org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.set(ReflectionUtils.java:306)[9:org.apache.aries.blueprint:0.3.2]
       at
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:819)[9:org.apache.aries.blueprint:0.3.2]
       ... 17 more

On first glance, nothing seems wrong with the setup, it’s
as documented by Spring JMX.

Any ideas?

Martin

Re: Cannot create MBeanServer and inject into MBeanExporter

Posted by Martin Lichtin <li...@yahoo.com>.
Excuse my ignorance...

Of course, below is Spring-specific and doesn't work in Blueprint.
In a OSGi Karaf, one has to configure it more like this:

     <bean id="testBean" class="JmxTestBeanImpl">
         <property name="name" value="TEST"/>
         <property name="age" value="100"/>
     </bean>

     <bean id="mbeanRegister" class="org.apache.karaf.management.MBeanRegistrer">
         <property name="mbeans">
             <map>
                 <entry value="org.my:name=stuff" key-ref="testBean"/>
             </map>
         </property>
     </bean>

     <reference id="mbeanServer" interface="javax.management.MBeanServer">
         <reference-listener ref="mbeanRegister" bind-method="registerMBeanServer" unbind-method="unregisterMBeanServer"/>
     </reference>


-------- Original Message --------
Subject: Cannot create MBeanServer and inject into MBeanExporter
From: Martin Lichtin <li...@yahoo.com>
To: user@aries.apache.org <us...@aries.apache.org>
Date: 9/19/2012 5:36 PM
> Hi
> I'm running into an issue when trying to configure a JMX bean.
> My configuration, according to http://www.atomikos.com/Documentation/SpringIntegration#JMX_Administration_of_Atomikos_T, is as follows:
> <beanid=/"jmxTransactionService"/ class=/"com.atomikos.icatch.admin.jmx.JmxTransactionService"/>
> </bean>
> <beanid=/"mbeanServer"/ class=/"org.springframework.jmx.support.MBeanServerFactoryBean"//>
> <beanid=/"exporter"/ class=/"org.springframework.jmx.export.MBeanExporter"/>
> <propertyname=/"beans"/>
> <map>
> <entrykey=/"atomikos:name=tx-service"/ value-ref=/"jmxTransactionService"//>
> </map>
> </property>
> <propertyname=/"server"/ ref=/"mbeanServer"//>
> </bean>
> Then the exception is:
> _org.osgi.service.blueprint.container.ComponentDefinitionException_: Error setting property: PropertyDescriptor <name: server, getter: class org.springframework.jmx.support.MBeanRegistrationSupport.getServer(, setter: [class org.springframework.jmx.support.MBeanRegistrationSupport.setServer(interfacejavax.management.MBeanServer]
>        at org.apache.aries.blueprint.container.BeanRecipe.setProperty(_BeanRecipe.java:821_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.container.BeanRecipe.setProperties(_BeanRecipe.java:787_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.container.BeanRecipe.setProperties(_BeanRecipe.java:768_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(_BeanRecipe.java:722_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.di.AbstractRecipe.create(_AbstractRecipe.java:64_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(_BlueprintRepository.java:219_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.container.BlueprintRepository.createAll(_BlueprintRepository.java:147_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(_BlueprintContainerImpl.java:631_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(_BlueprintContainerImpl.java:337_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(_BlueprintContainerImpl.java:230_)[9:org.apache.aries.blueprint:0.3.2]
>        at java.util.concurrent.Executors$RunnableAdapter.call(_Executors.java:441_)[:1.6.0_26]
>        at java.util.concurrent.FutureTask$Sync.innerRun(_FutureTask.java:303_)[:1.6.0_26]
>        at java.util.concurrent.FutureTask.run(_FutureTask.java:138_)[:1.6.0_26]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(_ScheduledThreadPoolExecutor.java:98_)[:1.6.0_26]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(_ScheduledThreadPoolExecutor.java:206_)[:1.6.0_26]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(_ThreadPoolExecutor.java:886_)[:1.6.0_26]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(_ThreadPoolExecutor.java:908_)[:1.6.0_26]
>        at java.lang.Thread.run(_Thread.java:662_)[:1.6.0_26]
> Caused by: _java.lang.Exception_: Unable to convert value org.springframework.jmx.support.MBeanServerFactoryBean@5de39029 <ma...@5de39029> to type javax.management.MBeanServer
>        at org.apache.aries.blueprint.container.AggregateConverter.convert(_AggregateConverter.java:172_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.container.BlueprintRepository.convert(_BlueprintRepository.java:373_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.convert(_ReflectionUtils.java:322_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.utils.ReflectionUtils$MethodPropertyDescriptor.internalSet(_ReflectionUtils.java:555_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.set(_ReflectionUtils.java:306_)[9:org.apache.aries.blueprint:0.3.2]
>        at org.apache.aries.blueprint.container.BeanRecipe.setProperty(_BeanRecipe.java:819_)[9:org.apache.aries.blueprint:0.3.2]
> ... 17 more
>
> On first glance, nothing seems wrong with the setup, it’s as documented <http://static.springsource.org/spring/docs/3.0.7.RELEASE/spring-framework-reference/html/jmx.html> by Spring JMX.
>
> Any ideas?
> Martin