当前位置: 首页 > 面试题库 >

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

空俊语
2023-03-14
问题内容

我需要以编程方式启动新的Java进程并动态设置JMX端口。所以不要这样做

-Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port=9995 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

我想做以下

System.setProperty("java.rmi.server.hostname", "127.0.0.1" );
System.setProperty("com.sun.management.jmxremote", "true" );
System.setProperty("com.sun.management.jmxremote.authenticate", "false" );
System.setProperty("com.sun.management.jmxremote.ssl", "false" );
System.setProperty("com.sun.management.jmxremote.port", "9995"  );

但这不起作用。知道为什么吗?


问题答案:

在调用代码时,您已经错过了配置jmxremote连接器的机会。

您需要做的是创建您自己的rmi注册表和JMXConnectorServer来侦听rmi调用并将它们传递给MBeanServer。

private void createJmxConnectorServer() throws IOException {
    LocateRegistry.createRegistry(1234);
    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://localhost/jndi/rmi://localhost:1234/jmxrmi");
    JMXConnectorServer svr = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs);
    svr.start();
}


 类似资料:
  • 我的Android手机上有一个蓝牙遥控快门。远程快门就像蓝牙键盘。 我的应用程序愉快地处理远程快门创建的键盘事件,但远程快门在90秒后进入睡眠状态,需要按一次键才能唤醒它,然后再发送下一次按键。 我需要一种机制来保持远程快门处于唤醒状态,这样我就不会失去第一次按键。(是的,我知道睡眠模式是为了节省能量,但我需要低延迟)。 我尝试以客户端和服务器的身份连接到设备,希望我可以将OutputStream

  • 问题内容: 说我有两个JavaBeans 和。 如果创建一个Person对象的列表,我想编组成这样的东西: 可以使用这里描述的技术: 使用JAXB解组/编组List 通过使用和注释JaxbList,可以将其编组为上述XML。 但是,能够重用相同的类来封送对象列表也很好。实际上,我将有许多其他类型的bean。我可以这样: 但是,理想情况下,最好用类名的复数形式替换“列表”,用类名替换“ item”。

  • 问题内容: 我知道使用jconsole附加到Java进程以获取内存信息。具体来说,我是通过编程方式获取有关各种内存池的信息,因此可以将其绑定到监视应用程序。 谢谢! 问题答案: 谢谢mattk-我基本上做了这个:-)

  • 上下文 我有一个基于OSGi的大型(Equinox3.9/EclipseRCP4.4)应用程序,还有几个“可选”包。这些可选捆绑包中的每一个都提供了可选的用户界面和一些额外的服务(通过SCR组件),这些服务只适用于我们的一部分客户。 应用程序始终作为预打包安装分发(也就是说,我们不使用P2或任何其他自动配置机制)。直到最近,我们为每个需要一些可选捆绑包的客户构建了不同的预打包安装。可选捆绑包的数量

  • 问题内容: 尝试启动并通过电话。没有。通过我的应用中的此代码进行Skype: Skype已启动,但无法捕获该数字。 问题答案: 此代码对我有用,可以在两个Skype用户之间发起呼叫: 要找到这个(和其他),请使用打开。查看AndroidManifest.xml,您将看到他们所知道的所有意图过滤器。如果要触发这些意图过滤器之一,则需要制定一个与之匹配的意图。这是上面的代码匹配的意图过滤器: 您可以从

  • 问题内容: 我正在寻找示例Java JMX代码以从另一个VM访问JMX属性的值。 使用JConsole,我可以毫无疑问地查看java.lang / Memory / Attributes / HeapMemory 我如何从VM中运行的Java程序中获得相同的信息? 需要任何命令行选项或其他需要启动的示例。 问题答案: 您需要设置一个JMXConnector。这是一个代码片段,它将获取远程计算机上已