2012-09-14 10 views
12

Relacionados con eclipse debug remote web application =>How do I debug a remote application in my eclipseCómo establecer la propiedad agentlib para Tomcat Plugin MVN (jpda)

¿Cómo puedo establecer/Archivo de esto en el gato mvn plugin? http://tomcat.apache.org/maven-plugin-2.0-SNAPSHOT/tomcat7-maven-plugin/

La única cosa que podría ayudar a establecer se SystemProperty pero eso no quiere trabajar para mí;/

Objetivo: vamos Tomcat se ejecutan en la consola a través de experto, sino habilitar la depuración remota para diferentes entornos de desarrollo

(SÍ chicos, podemos ejecutar Tomcat en Eclipse WTP esa no es la cuestión;!)

Respuesta

5

Es un hilo un poco viejo, pero para completar, pensé que podría agregar un poco aquí.

El complemento no proporciona la configuración de las opciones de depuración por el extraño motivo. Por lo tanto, su única opción es especificar manualmente la configuración de depuración en la JVM que ejecuta el proceso. En su entorno, hay tres formas de lograr esto:

  1. uso de un entorno variable experto conoce bien (como se describe por childno.de)
  2. Especificación directa de las opciones para maven (sin . env variable necesaria):

    mvn -Xdebug -Xnoagent -Djava.compiler = NINGUNO -Xrunjdwp: transport = dt_socket, dirección = 8000, servidor = S, = y suspender tomcat7: gestión guerra

  3. Con una configuración de ejecución de eclipse Eso es básicamente lo mismo que 2) pero se define esto en eclipse (eso sería bueno si no se quería dejar el IDE en absoluto). Para lograr eso, necesita especificar Maven Build Run configuración. Establezca el objetivo en tomcat7:run (o similar) y luego navegue hasta la pestaña JRE. El área de argumentosVM es donde se especifica la configuración de depuración: -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
Si se opta por 3), el objetivo de ejecución precisa para tomcat7 es irrelevante para la depuración de habilitación. Elija según su caso de uso (proyecto web dinámico, guerra, etc.). Lo mismo ocurre con la configuración del complemento. Sin embargo, asegúrese de especificar que está utilizando el plugin de Maven Tomcat en la sección pluginManagement de su pom proyecto:

<pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.tomcat.maven</groupId> 
     <artifactId>tomcat7-maven-plugin</artifactId> 
     <version>2.1</version> 
    </plugin> 
    </plugins> 
</pluginManagement> 
+0

¿Tengo que configurar primero la ejecución de maven descrita anteriormente con los parámetros de JVM, dejarla ejecutar y luego tener una segunda configuración de depuración para la depuración remota? Supongo que si cambié el puerto HTTP que va a ser el mismo para los argumentos de JVM, entonces? – JBA

+1

Sí. Necesita configurar su cliente de depuración remota en consecuencia. De su pregunta infiero que es un eclipse para usted, pero en principio cualquier otro cliente capacitado para JPDA también califica. Esta es la configuración predeterminada para la configuración de depuración remota de eclipse, por lo que debería funcionar de inmediato. Si el puerto 8000 no está disponible, asegúrese de cambiar a otro en la configuración de depuración JVM del servidor (el segmento de dirección de la opción -Xrunjwdp) y su cliente (eclipse debug config). Para evitar confusiones, este puerto es para el protocolo de depuración remota y no afecta a la comunicación HTTP/S con Tomcat. – shturec

-1

O ... simplemente puede añadir la siguiente etiqueta a su configuración del plugin

<jpda>true</jpda> 

Luego cuando ejecuta: mvn tomcat7: ejecutar, iniciará jpda en el puerto 8000.

Lo curioso es que aunque he probado esto y funciona, no puedo encontrar ningún código en la base de código de código abierto para explicar por qué funciona, ni he encontrado ninguna forma de cambiar desde el puerto predeterminado 8000.

Apache parece haber dejado caer la pelota cuando se trata de documentación de este complemento.

+0

Eso no funciona para mí. Estoy en la versión 2.2 del complemento. También descargué la fuente de Apache y ejecuté un grep recursivo insensible a mayúsculas y minúsculas para "jpda" y no se devolvió nada. – bmauter

Cuestiones relacionadas