java - 使用 JMX 连接访问 GridKernalMBean

标签 java jmx gridgain

我能够从 jconsole 访问 Gridgain beans,但是当我尝试以编程方式使用 JMX 访问网格内的 Gridgain beans(例如 GridKernalMBean)时,我收到“javax.management.NotCompliantMBeanException”

这是我正在使用的代码:

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);

网格外的 Bean 工作正常:-

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);

我是否缺少 gridgain 配置文件中的任何配置?

最佳答案

这意味着您的目标 mbean 不是 MXBean,并且公开非标准数据类型。尝试使用 javax.management.MBeanServerIncationHandler 创建代理。它更自由一些,但请记住,那些非标准类型属性不会出现在您的客户端中,除非它们是可序列化的并且位于您的客户端类路径中。

关于java - 使用 JMX 连接访问 GridKernalMBean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27049710/

相关文章:

java - 如何对传入的 Jersey MultiPart 请求进行单元测试处理

java - JMX 参数正确传递但无法使用 jconsole 连接

hadoop - 如何在GridGain中设置磁盘备份以进行恢复

java - 是否可以通过编程方式启用远程 jmx 监控?

jboss - jboss snmp 适配器(snmp 代理)可以扩展以支持我定义的 MIB 吗?

java - 从 Java 应用程序连接到远程 GridGain 节点

java - Apache Ignite 中的 session 写入超时问题

用于查找 { 和数字组合的 Java 正则表达式

java - 如何在Java中观察一个简单的 float ?

java - 在 Web 应用程序中使用 weblogic 数据源选项