2012-07-10 18 views

Respuesta

2

Bueno, escribí mi propio oyente JMXMP Tomcat. Siéntase libre de utilizar:

package webersg.tomcat; 

import java.lang.management.ManagementFactory; 

import javax.management.remote.JMXConnectorServer; 
import javax.management.remote.JMXConnectorServerFactory; 
import javax.management.remote.JMXServiceURL; 

import org.apache.catalina.Lifecycle; 
import org.apache.catalina.LifecycleEvent; 
import org.apache.catalina.LifecycleListener; 

public class JMXMPLifecycleListener implements LifecycleListener { 

    private int port = 5555; 

    private JMXConnectorServer cs; 

    @Override 
    public void lifecycleEvent(LifecycleEvent event) { 

     try { 

      // START 
      if (Lifecycle.START_EVENT == event.getType()) { 

       System.out.println("Start JMXMP on port " + port); 

       cs = JMXConnectorServerFactory.newJMXConnectorServer(
         new JMXServiceURL("jmxmp", "0.0.0.0", port), 
         null, 
         ManagementFactory.getPlatformMBeanServer() 
       ); 
       cs.start(); 

       System.out.println("Started JMXMP"); 

      } 

      // STOP 
      else if (Lifecycle.STOP_EVENT == event.getType()) { 

       System.out.println("Stop JMXMP"); 

       cs.stop(); 
      } 

     } catch (Exception e) { 
      throw new RuntimeException(e); 
     } 
    } 

} 

Así que después de un día de romper la cabeza en este tema, ahora soy capaz de utilizar VisualVM en mi solicitud.

3

I creado un proyecto basado en mvn Bart von Heukeloms' answer con el gato-catalina sea necesario conforme a lo dispuesto dependencia: jmxmp-lifecycle-listener

Sólo para ser enchufado a server.xml de Tomcat:
<Listener className="javax.management.remote.extension.JMXMPLifecycleListener" port="5555" />

no tengo suficiente reputación; de lo contrario, habría publicado esto como un comentario.

Cuestiones relacionadas