[jboss-user] [Management, JMX/JBoss] - javax.management.NotCompliantMBeanException: Class does not

sridhargoud_k do-not-reply at jboss.com
Tue Dec 23 11:27:23 EST 2008


Hi All,

Am trying to deploy notification.ejb containing  an MBean on JBoss 4.2.2GA,But i keep on getting the following exception.
javax.management.NotCompliantMBeanException: Class does not expose a management interface: java.lang.Object
  |         at org.jboss.mx.metadata.MBeanCapability.of(MBeanCapability.java:102)
  |         at org.jboss.mx.metadata.MBeanCapability.of(MBeanCapability.java:100)
  |         at org.jboss.mx.metadata.MBeanCapability.of(MBeanCapability.java:100)
  |         at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:182)
  |         at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.mx.server.MBeanServerImpl$3.run(MBeanServerImpl.java:1422)
  |         at java.security.AccessController.doPrivileged(Native Method)
  |         at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1417)
  |         at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:376)
  |         at com.TwoServiceMBean.start(TwoServiceMBean.java:83)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
  |         at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
  |         at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.ejb3.service.ServiceContainer.localInvoke(ServiceContainer.java:329)
  |         at org.jboss.ejb3.service.ServiceContainer.localInvoke(ServiceContainer.java:294)
  |         at org.jboss.ejb3.service.ServiceMBeanDelegate.invoke(ServiceMBeanDelegate.java:215)
  |         at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:995)
  |         at $Proxy0.start(Unknown Source)
  |         at org.jboss.system.ServiceController.start(ServiceController.java:417)
  |         at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  |         at $Proxy70.start(Unknown Source)
  |         at org.jboss.ejb3.JmxKernelAbstraction.installMBean(JmxKernelAbstraction.java:163)
  |         at org.jboss.ejb3.service.ServiceContainer.registerManagementInterface(ServiceContainer.java:554)
  |         at org.jboss.ejb3.service.ServiceContainer.start(ServiceContainer.java:175)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:103)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
  |         at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
  |         at $Proxy0.start(Unknown Source)
  |         at org.jboss.system.ServiceController.start(ServiceController.java:417)
  |         at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  |         at $Proxy70.start(Unknown Source)
  |         at org.jboss.ejb3.JmxKernelAbstraction.install(JmxKernelAbstraction.java:120)
  |         at org.jboss.ejb3.Ejb3Deployment.registerEJBContainer(Ejb3Deployment.java:301)
  |         at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:362)
  |         at org.jboss.ejb3.Ejb3Module.startService(Ejb3Module.java:91)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
  |         at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
  |         at $Proxy0.start(Unknown Source)
  |         at org.jboss.system.ServiceController.start(ServiceController.java:417)
  |         at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  |         at $Proxy33.start(Unknown Source)
  |         at org.jboss.ejb3.EJB3Deployer.start(EJB3Deployer.java:512)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
  |         at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
  |         at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
  |         at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87)
  |         at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188
  |         at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  |         at $Proxy34.start(Unknown Source)
  |         at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
  |         at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
  |         at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
  |         at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  |         at $Proxy9.deploy(Unknown Source)
  |         at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
  |         at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610)
  |         at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
  |         at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
  |         at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
  | 21:24:34,179 INFO  [EJB3Deployer] Deployed: file:/C:/Lang/JBoss/JBoss-4.2.2.GA/server/default/deploy/notification.ejb3
  | 21:24:34,179 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
  | 
  | --- MBeans waiting for other MBeans ---
  | ObjectName: com:service=TwoMBean
  |   State: FAILED
  |   Reason: javax.management.NotCompliantMBeanException: Class does not expose a management interface: java.lang.Object
  | 
  | --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
  | ObjectName: com:service=TwoMBean
  |   State: FAILED
  |   Reason: javax.management.NotCompliantMBeanException: Class does not expose a management interface: java.lang.Object
  | 
And these are my MBean interface and class

  | package com;
  | public interface OneMBean
  | {
  | 
  |     /**
  |      * This method is one of the life cycle method of MBean, will be invoked automatically while starting this service.
  |      * 
  |      * @throws Exception
  |      */
  |     public void start ()
  |         throws Exception;
  | 
  | 
  |     /**
  |      * This method is one of the life cycle method of MBean, will be invoked automatically while starting this service.
  |      * 
  |      * @throws Exception
  |      */
  |     public void stop ()
  |         throws Exception;
  | 
  | 
  |     public void add (int a, int b);
  | }


  | package com;
  | @Service(objectName = "com:service=OneMBean")
  | @Management(OneMBean.class)
  | public class OneServiceMBean
  |     extends NotificationBroadcasterSupport
  |     implements OneMBean
  | {
  | 
  |     /**
  |      * @see OneMBean#start()
  |      */
  |     @Override
  |     public void start ()
  |         throws Exception
  |     {
  |         // TODO Auto-generated method stub
  | 
  |     }
  | 
  | 
  |     /**
  |      * @see OneMBean#stop()
  |      */
  |     @Override
  |     public void stop ()
  |         throws Exception
  |     {
  |         // TODO Auto-generated method stub
  | 
  |     }
  | 
  | 
  |     /**
  |      * @see OneMBean#add(int, int)
  |      */
  |     @Override
  |     public void add (int anA, int anB)
  |     {
  |         System.out.println("      Addition " + (anA + anB));
  |         Notification notification = new Notification("Notification", this, 1, "Success");
  |        sendNotification(notification);
  |     }
  | }
  | 
And another MBean interface and class are:

  | package com;
  | 
  | /**
  |  * TODO: Documentation to be done for type 'TwoMBean'..
  |  * 
  |  * @author srgk
  |  */
  | public interface TwoMBean
  | {
  | 
  |     /**
  |      * This method is one of the life cycle method of MBean, will be invoked automatically while starting this service.
  |      * 
  |      * @throws Exception
  |      */
  |     public void start ()
  |         throws Exception;
  | 
  | 
  |     /**
  |      * This method is one of the life cycle method of MBean, will be invoked automatically while starting this service.
  |      * 
  |      * @throws Exception
  |      */
  |     public void stop ()
  |         throws Exception;
  | }

  | package com;
  | 
  | 
  | import java.lang.management.ManagementFactory;
  | 
  | import javax.management.MBeanServer;
  | import javax.management.Notification;
  | import javax.management.NotificationListener;
  | import javax.management.ObjectName;
  | 
  | import org.jboss.annotation.ejb.Management;
  | import org.jboss.annotation.ejb.Service;
  | 
  | 
  | 
  | 
  | 
  | @Service(objectName = "com:service=TwoMBean")
  | @Management(TwoMBean.class)
  | public class TwoServiceMBean
  |     implements TwoMBean, NotificationListener
  | {
  | 
  |       /**
  |      * @see TwoMBean#stop()
  |      */
  |     @Override
  |     public void stop ()
  |         throws Exception
  |     {
  |         // TODO Auto-generated method stub
  | 
  |     }
  | 
  | 
  |     /**
  |      * @see javax.management.NotificationListener#handleNotification(javax.management.Notification, java.lang.Object)
  |      */
  |     @Override
  |     public void handleNotification (Notification anNotification, Object anHandback)
  |     {
  |         System.out.println("     " + anNotification.getSequenceNumber());
  |         System.out.println("              " + anNotification.getMessage());
  |     }
  | 
  | 
  |     /**
  |      * @see TwoMBean#start()
  |      */
  |     @Override
  |     public void start ()
  |         throws Exception
  |     {
  |         MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
  | 
  |         // Construct the ObjectName for the MBean we will register
  |         ObjectName name = new ObjectName("com:service=OneMBean");
  |         OneMBean mbean = new OneServiceMBean();
  |        mbs.registerMBean(mbean, name);        mbs.addNotificationListener(name, this, null, null);
  | 
  |     }
  | 
  | }

My aim is to get notification from OneServiceMBean to TwoServiceMBean, when i added two numbers.

mbs.registerMBean(mbean, name);I think so, The corresponding line am gettingexception. If any think wrong. let me know.

I hope i get reply any one of you.

Thanks,
Sridhar.




View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4198335#4198335

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4198335



More information about the jboss-user mailing list