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