2014-11-20 2 views
0

Я могу получить доступ Gridgain бобов из JConsole, но когда я пытаюсь доступа Gridgain фасоли по внутренней поверхности сетки, как GridKernalMBean с помощью JMX программно, я получаю «javax.management.NotCompliantMBeanException»Доступ GridKernalMBean с помощью соединения JMX

Вот код, я использую:

String jmxUrl = "service:jmx:rmi:///jndi/rmi://" + HOST+ ":" + PORT + "/jmxrmi"; 
JMXServiceURL url = new JMXServiceURL(jmxUrl); 
JMXConnector jmxc = JMXConnectorFactory.connect(url, null); 
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection(); 
ObjectName objectName = new ObjectName("org.gridgain:grid=gridname,group=Kernal,name=GridKernal"); 
org.gridgain.grid.GridKernalMBean mbean = JMX.newMXBeanProxy(mbsc, objectName, org.gridgain.grid.GridKernalMBean.class); 

Фасоль вне сетки отлично работает: -

String jmxUrl = "service:jmx:rmi:///jndi/rmi://" + HOST+ ":" + PORT + "/jmxrmi"; 
JMXServiceURL url = new JMXServiceURL(jmxUrl); 
JMXConnector jmxc = JMXConnectorFactory.connect(url, null); 
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection(); 
ObjectName objectName = new ObjectName("org.gridgain:group=Kernal,name=GridGain"); 
org.gridgain.grid.GridGainMBean mbean = JMX.newMXBeanProxy(mbsc, objectName, org.gridgain.grid.GridGainMBean.class); 

Я пропускаю любые конфигурации в gridgai n файл конфигурации?

ответ

1

Это означает, что ваши целевые mbeans не являются MXBeans и выставляют нестандартные типы данных. Попробуйте использовать javax.management.MBeanServerInvocationHandler для создания прокси. Это немного более либерально, но имейте в виду, что те атрибуты нестандартного типа не будут отображаться в вашем клиенте, если они не будут сериализованы и в вашем клиентском классе.

Смежные вопросы