如何解决如何使用自定义JMXAuthenticator
| 我必须针对数据库中的条目对JMX客户端进行身份验证。因此,我编写了一个自定义JMXAuthenticator实现。 启动我的应用程序时,我可以使用JConsole通过\'Local Process \'访问MBean。但是当我尝试使用url \'service:jmx:rmi:/// jndi / rmi:// localhost:10999 / jmxrmi \'作为远程进程访问它时,JConsole会显示一条消息,抱怨\'与服务的连接:jmx:rmi:/// jndi / rmi:// localhost:10999 / jmxrmi没有成功。 下面是启动MBeanServer和JMXConnectorServer的服务器端代码。有人知道我在做什么错吗? 提前致谢, 汤玛士final MBeanServer mbs = MBeanServerFactory.createMBeanServer(\"MyDomain\");
final HashMap<String,Object> environment = new HashMap<String,Object>();
final JMXAuthenticator authenticator = new JMXAuthenticatorImpl();
environment.put(JMXConnectorServer.AUTHENTICATOR,authenticator);
final JMXServiceURL serviceURL = new JMXServiceURL(\"rmi\",\"localhost\",10999);
final JMXConnectorServer connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(serviceURL,environment,mbs);
connectorServer.start();
解决方法
似乎问题在于,在创建新的JMXConnectorServer之前,我还没有创建RMI注册表。
插入
LocateRegistry.createRegistry(port);
在创建JMXConnectorServer之前,已解决了该问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。