Problema

¿Cómo depuramos nuestra aplicación ejecutándola en un servidor AEM remoto (o local)?

Solución

Para depurar una aplicación CQ5, puede usar depuración remota de java.

Advertencia: No habilite la depuración remota en su entorno de producción a menos que sea necesario, ya que podría afectar en gran medida al rendimiento de su aplicación.

Paso 1: Añadir el parámetro JVM de depuración remota

  1. Para utilizar la depuración remota, debe iniciar AEM con este parámetro JVM:
    -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n

Puede controlar la herramienta mediante uno de los siguientes procedimientos:

  • Añádalo a la variable de entorno CQ_JVM_OPTS de su script crx-quickstart/bin/start (para que su servidor siempre se inicie en modo de depuración).
  • Incluirlo como parámetro al iniciar AEM con java -jar directamente. Por ejemplo, java -Xmx512m -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -jar cq-author-4502.jar

Nota

  • Si es necesario, puede cambiar el puerto definido en "...,address=8000,..." de 8000 a algo que funcione mejor en su entorno.
  • Si nota que no está funcionando, evite bifurcar el proceso java especificando la opción -nofork en la línea de comandos.
  • El script de inicio se encuentra en crx-quickstart/server para versiones CQ < 5.5

Paso 2: Iniciar una sesión de depuración remota

Para iniciar una sesión de depuración remota desde Eclipse, haga lo siguiente:

  1. Abrir Eclipse.
  2. Seleccione Ejecutar > Configuraciones de depuración.
  3. Haga clic con el botón secundario en Aplicaciones Java remotas y seleccione Nuevo.
  4. Seleccione su proyecto CQ5 en Proyecto.
  5. Introduzca el puerto desde la configuración "address" del parámetro jvm definido anteriormente. En el ejemplo, es el puerto 8000 (y el nombre de host de la máquina a la que se está conectando, muy probablemente localhost)
  6. Para iniciar una sesión de depuración, haga doble clic en su nueva configuración en la pantalla Configuraciones de depuración después de guardarla.

Se aplica a:  Adobe Experience Manager 6.x