2009-08-27 11 views
5

Tengo una aplicación Java ejecutándose en JBoss en la que he habilitado JMX remote monitoring. Esto me permite conectarme con herramientas como jconsole y visualvm para controlar el uso de la memoria, la utilización de la CPU, mbeans y más. El servidor en el que se ejecuta mi aplicación tiene acceso restrictivo al puerto, por lo que estoy usando el JSR-262 JMX WS Connector.¿Cómo inicio VisualVM con el JMXWS WS Connector (JSR-262)?

La implementación de JSR-262 tiene un ejemplo de cómo se habilita jmx: ws protocolo para jconsole. Pero me gustaría probar lo mismo para visualvm.

Lo que creo que tengo que hacer es, al poner en marcha VisualVM:

  1. añadir una serie de JSR-262 frascos adicionales a la ruta de clase
  2. Establecer los java.endorsed.dirs a un camino donde el bibliotecas JAXWS desagregadas residen

¿Puede alguien señalarme en la dirección correcta? ¿Hay un mecanismo para proporcionar argumentos adicionales a visualvm? ¿Funcionará en absoluto? ¿Hay incluso una manera más fácil?

+0

¿Cómo configuró el JSR-262 en el servidor JBoss? Si no estoy equivocado, el JMX WS Connector también debe estar registrado en el servidor. – mjn

Respuesta

6

Encontré la respuesta. Tras ejecutar la versión para Linux de VisualVM, he encontrado que hay son varios argumentos de línea de comandos disponibles:

 
General options: 
    --help    show this help 
    --nosplash   do not show the splash screen 
    --jdkhome  path to Java(TM) 2 SDK, Standard Edition 
    -J  pass to JVM 

    --cp:p  prepend to classpath 
    --cp:a  append to classpath 
Core options: 
    --laf use given LookAndFeel class instead of the default 
    --fontsize  set the base font size of the user interface, in points 
    --locale use specified locale 
    --userdir  use specified directory to store user settings 

Module reload options: 
    --reload /path/to/module.jar Installs or reinstalls a module JAR file. 

Additional Module(s) Option(s): 
    --openjmx   open application specified by JMX connection (host:port) 
    --openid    open application with id 
    --openpid   open application with process id 
    --openfile   open file specified by , file can be Application snapshot, NetBeans Profiler snapshot or HPROF heap dump. 

Esto me llevó a intentar el siguiente comando:

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

que funciona como un encanto.