Debug Remoto De Weblogic
Existe una forma de poder debuguear el WebLogic desde algún IDE. Esto lo posibilita una característica conocida como JPDA que las máquinas virtuales de Java (JVM) tienen.
Contenido
Configurando el Weblogic
- Setear la variable para debug:
set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
Configuración para Weblogic 8.x.
- Ubicar el dominio en uso. Por ejemplo \bea\user_projects\domain\mydomain.
- Abrir el archivo startWeblogic.cmd para editar.
- Sobre el final del archivo, localizar esta línea:
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%...
- Agregarle la variable %DEBUG_OPTS% de la siguiente forma:
%JAVA_HOME%\bin\java %DEBUG_OPTS% %JAVA_VM% %MEM_ARGS%...
Configuración para Weblogic 9.x.
- Ubicar la carpeta bin del dominio en uso. Por ejemplo \bea\user_projects\domain\mydomain\bin.
- Abrir el archivo startWebLogic.cmd para editar.
- Sobre el final del archivo, localizar las dos lineas que comienzan:
%JAVA_HOME%\bin\java %JAVA_VM%
- Agregarle la variable %DEBUG_OPTS% de la siguiente forma:
%JAVA_HOME%\bin\java %DEBUG_OPTS% %JAVA_VM% %MEM_ARGS%...
Configuración para Weblogic 10.x.
Para iniciar WebLogic Server en modo debug, se necesita modificar el startWebLogic.cmd script. Ejemplo: <WLS-root>\wlserver_10.0\samples\domains\wl_server. <WLS-root> es el directorio en el que se instalo el weblogic.
En el startWebLogic.cmd script, añadir:
set JAVA_OPTIONS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n
El -XDebug parametro habilita el debug. El -Xnoagent parametro desabilita el default sun.tools.debug agente debug. El -Xrunjdwp parametro carga el JPDA refencia de la implementacion de JDWP. Debugging es hablitado en el puerto 4000. El protocolo JDWP es el protocolo usado en debug con el debugger remoto.
Iniciar el WebLogic Server con el startWebLogic.cmd script.
Configurando el IDE
La idea es siempre la misma: conectar el debugger del IDE a la JVM de WebLogic. Esta tarea varia de acuerdo al IDE que se utilice. A continuación las instrucciones para algunos IDE.
En todos los casos, WebLogic tiene que estar levantado para que el IDE pueda conectarse. Para esto, ejecutar el script que se modifico en el paso anterior. Una vez que WebLogic inicie, sigan las instrucciones.
Eclipse
- Ir al menú Run -> Debug... (varia el nombre de acuerdo a la versión. se debe acceder a la configuración del debug).
- Seleccionar la opción de la izquierda "Remote Java Application".
- Click en el botón "New".
- En la solapa "Connect" completen los datos:
- Connection Type: Standard (Socket Attach)
- Host: el IP o nombre de su maquina
- Port: 1044
- Click en el botón Debug. Eclipse debería conectarse a WebLogic y quedar listo para debug.
NetBeans
- Ir al menú Debug -> Attach Debugger
- Completar los datos del popup que aparece:
- Connector: !SocketAttach
- Transport: dt_socket
- Host: El IP o nombre de su maquina
- Port: 1044
- Click en "Ok". NetBeans se debería conectar a WebLogic y quedar listo para debug.
JDeveloper
- Sobre el toolbar, ir al ícono de debug -> Manage Run Configurations...
- Seleccionar la categoría Run/Debug
- Doble-click en la configuración de debug Default (o la que se este usando)
- Seleccionar la opción Launch Settings
- Activar el checkbox "Remote Debugging and Profiling"
- Seleccionar la opción Debugger -> Remote
- Completar los datos:
- Protocol: Attach to JPDA
- Host: el IP o nombre de la maquina
- Port: 1044
- Aceptar las ventanas abiertas. JDeveloper está listo para debug.