博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JMX使用报java.lang.ClassNotFoundException: org.apache.naming.java.javaURLContextFactory
阅读量:6816 次
发布时间:2019-06-26

本文共 1346 字,大约阅读时间需要 4 分钟。

hot3.png

    项目需求:通过JMX监控ZooKeeper,效果类似jconsole,但以web方式展现。在使用过程中,web容器中的JMX连接MBeanServer获取连接时,总是失败,提示信息:java.lang.ClassNotFoundException: org.apache.naming.java.javaURLContextFactory。但通过main方法调用的时候,是可以正常访问的。

    代码如下:

String jmxURL = "service:jmx:rmi:///jndi/rmi://" + ip + ":" + jmxport + "/jmxrmi";			// jmxurl			JMXServiceURL serviceURL = new JMXServiceURL(jmxURL);			Map
map = new HashMap
(); String[] credentials = new String[] { userName, password }; map.put("jmx.remote.credentials", credentials); connector = JMXConnectorFactory.connect(serviceURL, map); MBeanServerConnection mbsc = connector.getMBeanServerConnection();

后从网上搜索资料,从一篇文章(http://canofy.iteye.com/blog/758748)中获到了解决方法,修改了MBeanServerConnection的获取方式,然后就可以正常运行了,修改后的代码如下:

Registry registry = LocateRegistry.getRegistry(host, Integer.parseInt(port));			RMIServer stub = null;			if (stub == null) {				stub = (RMIServer) registry.lookup("jmxrmi");			}			Map
map = new HashMap
(); String[] credentials = new String[] { username, password }; map.put("jmx.remote.credentials", credentials); connector = new RMIConnector(stub, null); connector.connect(map); mbsc = connector.getMBeanServerConnection();

 

MBeanServerConnection有两种获取方式,一般情况下,两种获取方式都可以,某些特殊应用,API上面意思是最好使用第二种方法。

转载于:https://my.oschina.net/u/1241970/blog/730950

你可能感兴趣的文章
(转)完整java开发中JDBC连接数据库代码和步骤
查看>>
Redis Lua脚本原理
查看>>
有时间测试dism
查看>>
/Users/alamps/AndroidStudioProjects/Demo10ScrollView
查看>>
【Swift】iOS UICollectionView 计算 Cell 大小的陷阱
查看>>
为什么我刚发表的文章变成了“待审核”,csdn有没有官方解释啊
查看>>
Android多线程源码详解一:handler、looper、message、messageQueue
查看>>
SaaS加速器II 能力中心:互利互补 共享商业红利
查看>>
病毒木马防御与分析实战
查看>>
分布式工作流任务调度系统Easy Scheduler正式开源
查看>>
Flutter实战(一)写一个天气查询的APP
查看>>
Python零基础学习笔记(十二)—— 字符串及其常用方法
查看>>
Webpack 和 Gulp 构建伪命令行项目
查看>>
在线面试, 前端, 提纲, 草稿
查看>>
hive_异常_01_ Terminal initialization failed; falling back to unsupported
查看>>
分布式事务键值数据库 TiKV 加入 CNCF 沙箱孵化器
查看>>
Vue - day1
查看>>
kvm.virsh常用命令篇
查看>>
[Hive]Hive使用指南四 客户端导入数据
查看>>
10.JUC线程高级-线程八锁
查看>>