我有远程JBoss 7.1服务器,我想通过VisualVM或JConsole连接到这个服务器。
我在googled上搜索了一些关于如何使用JBoss或JCoonsole连接到VisualVM 7.1的线程/教程,例如:
不幸的是,我没有运气通过JMX连接到我的JBoss 7.1。
你有什么想法,如何连接到JBoss 7.1与VisualVM?
编辑:我将-Dcom.sun.management.jmxremote.authenticate=false添加到standalone.conf.bat中,但是我得到了一个异常:引起: java.lang.IllegalStateException: LogManager没有被正确地嵌入(您必须将"java.util.logging.manager“系统属性设置为"org.jboss.logmanager.LogManager")。
因此,我向JAVA_OPTS添加了另一个选项:-Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.port=1090,但我收到的例外是:
Could not load Logmanager "org.jboss.logmanager.LogManager"
java.lang.ClassNotFoundException: org.jboss.logmanager.LogManager
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)发布于 2013-10-02 12:01:15
找到了解决办法。我需要在JAVA_OPTS中standalone.conf.bat中添加以下参数:
-Dcom.sun.management.jmxremote.port=1090 ^
-Dcom.sun.management.jmxremote.authenticate=false ^
-Dcom.sun.management.jmxremote ^
-Dcom.sun.management.jmxremote.ssl=false ^
-Djava.util.logging.manager=org.jboss.logmanager.LogManager ^
-Xbootclasspath/p:<JBOSS_PATH>/modules/org/jboss/logmanager/main/jboss-logmanager-1.2.2.GA.jar ^
-Xbootclasspath/p:<JBOSS_PATH>/modules/org/jboss/logmanager/log4j/main/jboss-logmanager-log4j-1.0.0.GA.jar ^
-Xbootclasspath/p:<JBOSS_PATH>/modules/org/apache/log4j/main/log4j-1.2.16.jar -Djboss.modules.system.pkgs=org.jboss.logmanager注1:在Unix上使用\而不是^。
注2:将<JBOSS_PATH>替换为JBoss 7.x安装路径。我的是c:/java/jboss-as-7.1.1.Final。
发布于 2013-10-02 11:12:34
如果您打开一个命令shell并键入"netstat -a",您看到在JMX端口1090上侦听什么了吗?如果不是,也许您必须检查。
发布于 2014-11-05 16:39:17
您可以直接连接到JBOSS,而不是VM JMX (不需要修改JAVA_OPTS)
只需确保在standalone.xml (JMX子系统活动)中有以下配置
在独立模式下(监听端口9999):
<subsystem xmlns="urn:jboss:domain:jmx:1.1">
<show-model value="true"/>
<remoting-connector />
</subsystem> 在域模式(监听端口4447)
<subsystem xmlns="urn:jboss:domain:jmx:1.1">
<show-model value="true"/>
<remoting-connector use-management-endpoint="false"/>
</subsystem>然后我们需要一些小技巧:由于JBoss JMX实现有点特定,我们需要在JVisualVM类路径中包含一些jboss。
$JBOSS_HOME/bin/jconsole.sh/jconsole.bat,并将其复制/重命名为同一目录中的jvisualvm.sh / jvisualvm.bat。-cp:a "$CLASSPATH"而不是-J-Djava.class.path="$CLASSPATH",替换每个jvisualvm对j控制台的可执行调用。现在,只需使用脚本启动visualVM,并使用折叠url service:jmx:remoting-jmx://hostname:port添加一个新的JMX连接(文件菜单)(凭据是管理领域之一)。
注意:如果您不能直接访问JMX端口,请考虑使用ssh隧道。
https://stackoverflow.com/questions/19135550
复制相似问题