Parece que no puedo depurar la aplicación tomcat a través de Eclipse. He puesto
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
y luego corro bin/catalina.sh
, donde veo salida diciendo que es de escucha para dt_socket
el port 8000
. Pero cada vez que intento conectarme al puerto 8000
en Eclipse (agregando una entrada en el menú de la aplicación java remota), se queja de una conexión rechazada. ¿Algunas ideas?
Respuestas:
¿Puedes comprobar si esto funciona?
fuente
set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
catalina.bat jpda start
suspend
especifica si el jvm debe esperar al depurador o continuar. Consulte este documento .catalina.sh jpda start
debería ser suficiente. Catalina.sh tiene un par deJPDA_*
parámetros que se pueden utilizar para, por ejemplo, cambiar el puerto, consulte el archivo para obtener documentación.Dediqué algo de tiempo a esto para obtener la información correcta.
Así que aquí está la información detallada paso a paso.
Entorno: Windows 7
Versión de TomCat: 7.0
IDE: Eclipse
Las configuraciones que se agregarán para habilitar la depuración remota en tomcat son
No recomiendo la configuración anterior para un entorno que no sea de Windows. Para agregar la configuración anterior, haga doble clic en el servidor Tomcat, que estará disponible en la vista del servidor. Encuentra la captura de pantalla a continuación.
Ahora agregue la configuración del entorno de tiempo de ejecución anterior a tomcat. Para ello, compruebe la siguiente captura de pantalla.
Ahora vaya a la pestaña Arugments en Editar propiedades de configuración de inicio como se muestra en la siguiente captura de pantalla.
La sección de argumentos de GoTo VM agrega estas líneas.
Ahora tengo que depurar el botón disponible en la barra de herramientas de eclipse.
En las configuraciones de depuración, busque "Aplicación Java remota" y haga doble clic en ella.
En el campo Nombre, ingrese el nombre que desee.
Desde el campo del proyecto usando el botón de navegación, seleccione el proyecto que desea realizar la depuración remota.
El nombre de host no es más que la dirección de host. Aquí estoy trabajando localmente, por lo que es "localhost".
Por último, en la columna Puerto, el valor debe ser 8000. Aparte de los campos de texto Nombre y Proyecto, otras dos columnas, Host y puerto, serán llenados por el propio eclipse si no hacen que tenga los mismos valores que los mencionados. Consulte Captura de pantalla para obtener información.
Ahora haga clic derecho en TomcatServer en la consola del servidor, seleccione Agregar y Eliminar del menú contextual. Desde este diálogo puede agregar el proyecto al servidor.
Ahora ejecute el servidor Tomcat.
Ahora ejecute TomCatDebugConfiguration desde Debug Tool.
Por último, abra el navegador interno o externo y ejecute su proyecto. Si el control de ejecución alcanzó los puntos de interrupción, el eclipse solicitará una perspectiva de depuración.
fuente
En el directorio bin de tomcat donde se encuentra
catalina.bat
o.sh
(también conocido como {CATALINA_BASE} / bin), edite (cree si no está allí):Agregue la siguiente línea:
Eso es todo lo que necesita hacer, no necesita editar el archivo
catalina.bat
(o.sh
).Vea los comentarios en
catalina.bat
ocatalina.sh
.Puede que tenga que ajustar la sintaxis para su entorno / situación particular. Por ejemplo, si ya tiene CATALINA_OPTS definido, puede hacer algo como esto (en un entorno de Windows):
Para depurar desde Eclipse:
ejecutar-> Configuraciones de depuración ...-> Aplicación Java remota-> Nuevo
y especifique un nombre, el proyecto que está depurando y el host tomcat y el puerto de depuración especificados anteriormente.
fuente
setenv.bat
elbin
directorio ponga una línea comoset JPDA_OPTS= -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n
, usestartup.bat
para iniciar tomcatEn el
catalina.bat
archivo, modifique lo siguiente.Paso 1:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
Paso 2:
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
Paso 3: Ejecute Tomcat desde el símbolo del sistema como se muestra a continuación:
catalina.sh jpda start
Paso 4: luego en el eclipse crea una configuración de depuración
project name
.Standard(Socket Attach)
localhost
8000
(o cualquier número de puerto, pero debería ser el mismo en otros lugares también).fuente
Muchas de las respuestas anteriores son correctas, pero recuerde que, de forma predeterminada, el depurador solo escuchará en localhost. Si está depurando un servidor remoto , deberá especificar la dirección IP para escuchar, por ejemplo
Tenga en cuenta que la dirección ahora es 10.1.1.33 : 8000
Por supuesto, también puede verificar qué IP se está utilizando realmente, ejecutando
tanto en Windows como en Linux y filtrar el puerto con
find
(Windows) ogrep
(Linux).fuente
Simplemente ejecute
./catalina.sh jpda start
(bifurcaciones) o./catalina.sh jpda run
(no bifurcaciones, no se menciona en la ayuda). Todas las opciones mencionadas aquí tienen valores cuerdos por defecto.fuente
Permítanme compartirles la forma sencilla de habilitar el modo de depuración remota en tomcat7 con eclipse (Windows).
Paso 1: abra el archivo bin / startup.bat
Paso 2: agregue las siguientes líneas para depurar con la opción JDPA (debería comenzar la línea del archivo)
Paso 3: en el mismo archivo .. ve al final del archivo modifica esta línea -
paso 4: luego simplemente ejecute bin> startup.bat (ahora su servidor tomcat se ejecutó en modo remoto con el puerto 8000).
Paso 5: después de eso, conectemos su proyecto de origen mediante eclipse IDE con el cliente remoto.
paso 6: En el IDE de Eclipse, vaya a "Configuración de depuración"
paso 7: haga clic en "aplicación java remota" y luego haga clic en "Nuevo"
paso 8. en la pestaña "conectar" establezca el valor del parámetro
paso 9: haga clic en aplicar y depurar.
así que finalmente su cliente remoto eclipse está conectado con el servidor tomcat en ejecución (modo de depuración).
Espero que este enfoque pueda ayudarte.
Saludos..
fuente
Modifica catalina.bat para agregar
y
Opcional: agregue la siguiente línea para ejecutar el modo de depuración de forma predeterminada cuando ejecuta startup.bat
Eclipse o STS seleccione la configuración de depuración haga clic derecho -> nuevo
fuente
Si todo lo anterior no funciona, siempre puede agregarlo al script
fuente
En tomcat 7, catalina.sh tiene este código:
Ii implica que puede configurar JPDA con:
O con:
Y finalmente usa:
catalina.sh jpda start
Saludos
fuente
Estaba teniendo este problema mientras ejecutaba Tomcat dentro de un contenedor Docker. Para solucionar este problema, asegúrese de agregar el argumento '-p 8000: 8000' en su comando docker run para exponer este puerto a su máquina local. Por supuesto, también necesitará el archivo setenv.sh en su $ {CATALINA_HOME} / bin / dentro de su contenedor.
fuente
Modificar startup.bat con CATALINA_OPTS Y JPDA_OPTS no funcionó para mí, pero agregarlos a catalina.bat sí
CATALINA_OPTS = "- Xdebug -Xrunjdwp: transporte = dt_socket, dirección = 8000, servidor = y, suspender = n"
JPDA_OPTS = "- agentlib: jdwp = transporte = dt_socket, dirección = 8000, servidor = y, suspender = n"
cambiar la llamada "% EXECUTABLE%" start% CMD_LINE_ARGS% a
llamar "% EXECUTABLE%" jpda start% CMD_LINE_ARGS%
Luego configure la aplicación java remota en sus configuraciones de depuración en Eclipse.
fuente
En primer lugar, si abre catalina.bat con el editor de texto, verá que: "No establezca las variables en este script ..." Así que nunca lo cambie en ese script, en su lugar, puede seguir los pasos a continuación:
Luego, establezca 2 variables en ese archivo bat como:
set CATALINA_OPTS = "- Xdebug -Xrunjdwp: transporte = dt_socket, dirección = 8000, servidor = y, suspender = n"
establecer JPDA_OPTS = "- agentlib: jdwp = transporte = dt_socket, dirección = 8000, servidor = y, suspender = n"
Por último, ejecute eso en cmd que: "catalina.bat jpda start"
En IDE, cree una configuración de depuración remota y establezca el host en la IP del servidor relacionado y el puerto en 8000.
fuente
Para la versión apache-tomcat-8.5.28 simplemente haga esto,
Como la configuración predeterminada ya configurada para nosotros en catalina.bat como
Así que no hay necesidad de ninguna otra configuración. Y cuando ejecuta el comando catalina.bat jpda start, puede ver que se abre el puerto de depuración 8000.
fuente
Vea esta respuesta para los problemas que tuve con Java 8 y Tomcat 9: la depuración remota de Java (JPDA) no me funciona en Tomcat 9
Esto es similar a la advertencia de @ DAB, y su solución probablemente sea más segura.
fuente
Para apache-tomcat-8.5.28
modificar
JDPA_OPTS
como el siguiente y luego ejecutar comocatalina.bat jpda start
fuente