我想通过JMX远程通过VisualVM分析Java应用程序。因为它是一个NAT和防火墙的EC2实例,我不能使用默认的RMI方法,需要使用我必须首先下载的可选JMXMP扩展。
注意 - 如果您想使用JMXMP连接器,请下载JSR 160 参考文献的实施 ,并添加 JMXREMOTE_OPTIONAL.JAR文件到您的CLASSPATH。你会找到例子 JMXMP连接器在JMX REMOTE API教程中的使用包括在内 随着JSR 160参考实施。
http://docs.oracle.com/javase/6/docs/technotes/guides/jmx/overview/connectors.html
但是当我去那个页面时,我找不到下载。事实上,谷歌找不到下载。我在哪里可以获得这些扩展?
答案 0 :(得分:8)
规范的javax.management:jmxremote_optional似乎已从Maven Central [1]中删除。 (我想知道为什么...... Larry律师的军团?)
幸运的是,以下似乎是Maven Central [2]上 的替代品:
<dependency>
<groupId>org.glassfish.external</groupId>
<artifactId>opendmk_jmxremote_optional_jar</artifactId>
<version>1.0-b01-ea</version>
</dependency>
我的JMXMP / TLS代码继续使用此功能,受到保护并且双方都具有身份验证。愿你的里程同样好。 :)
[1] http://repo1.maven.org/maven2//javax/management/jmxremote_optional/1.0.1_04/
[2] http://repo1.maven.org/maven2/org/glassfish/external/opendmk_jmxremote_optional_jar/1.0-b01-ea/
答案 1 :(得分:3)
http://www.oracle.com/technetwork/java/javase/tech/download-jsp-141676.html
...有 JMX Remote API 1.0.1_04参考实施的下载按钮。这链接到......
...仅提供 Java Management Extensions(JMX)远程API参考实现1.0.1_03 。所以还是有点不稳定。
答案 2 :(得分:2)
最简单的解决方案是使用ssh -D
创建socks代理。有关详细信息,请参阅this post。然后启动VisualVM并在Tools-&gt; Options-&gt; Network中设置此代理。您无需在VisualVM命令行上使用-J-Dnetbeans.system_socks_proxy -J-Djava.net.useSystemProxies
。
答案 3 :(得分:1)
v4.0于2013年5月问世
答案 4 :(得分:0)
请参阅https://github.com/nickman/OpenDMK处的OpenDMK。 这是一个maven构建。您需要jmx-optional模块。