6

我有一个在 JBoss 中运行的 Java 应用程序,我在其中启用了JMX 远程监控。这使我可以连接 jconsole 和 visualvm 等工具来监控内存使用情况、cpu 利用率、mbean 等。运行我的应用程序的服务器具有限制性端口访问权限,这就是我使用JSR-262 JMX WS 连接器的原因。

JSR-262 实现有一个示例,说明如何为 jconsole 启用 jmx:ws 协议。但我想为visualvm尝试同样的方法。

我相信我必须做的是,在启动 visualvm 时:

  1. 在类路径中添加一些额外的 JSR-262 jar
  2. 将 java.endorsed.dirs 设置为未捆绑的 JAXWS 库所在的路径

有人可以指出我正确的方向吗?是否有一种机制可以为 visualvm 提供额外的参数?它会起作用吗?还有更简单的方法吗?

4

1 回答 1

7

我找到了答案。在运行 linux 版本的 visualvm 时,我发现有许多命令行参数可用:

常规选项:
  --help 显示此帮助
  --nosplash 不显示启动画面
  --jdkhome 到 Java(TM) 2 SDK,标准版的路径
  -J 传递给 JVM

  --cp:p 附加到类路径
  --cp:a 附加到类路径
核心选项:
  --laf 使用给定的 LookAndFeel 类而不是默认的
  --fontsize 设置用户界面的基本字体大小,以磅为单位
  --locale 使用指定的语言环境
  --userdir 使用指定目录存储用户设置

模块重载选项:
  --reload /path/to/module.jar 安装或重新安装模块 JAR 文件。

附加模块选项:
  --openjmx 打开由 JMX 连接指定的应用程序(主机:端口)
  --openid 使用 id 打开应用程序
  --openpid 使用进程 ID 打开应用程序
  --openfile 打开由 指定的文件,文件可以是应用程序快照、NetBeans Profiler 快照或 HPROF 堆转储。

这导致我尝试以下命令:

visualvm\bin\visualvm -cp:a lib\wiseman-core.jar;lib\jmxws.jar -J-Djava.endorsed.dirs=lib\endorsed

这就像一个魅力。

于 2009-08-27T09:51:02.800 回答