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 <[email protected]>
To: [email protected] <[email protected]>
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 
<mailto: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 
<http://static.springsource.org/spring/docs/3.0.7.RELEASE/spring-framework-reference/html/jmx.html>
 by Spring JMX.

Any ideas?
Martin


Reply via email to