Estoy usando WebLogic 10.3 con una aplicación Java EE. ¿Alguien puede decirme cómo depurar esta aplicación?Cómo depurar la aplicación Java EE usando WebLogic 10.3
Respuesta
Pruebe la depuración remota de la aplicación. Puede probar estos enlaces, Thay puede ser útil:
http://eclipse.sys-con.com/node/169364
http://www.jacoozi.com/index.php?option=com_content&task=view&id=119&Itemid=134
Lo que hice para conseguir el Eclipse depurador trabajar con Weblogic 10 fue a buscar el archivo startWeblogic.cmd
en el carpeta weblogic.10.3.3.0\user_projects\domains\base_domain\bin\
y modifique la siguiente línea (alrededor de la línea 95):
set JAVA_OPTIONS=%SAVE_JAVA_OPTIONS%
a
set JAVA_OPTIONS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n %SAVE_JAVA_OPTIONS%
Entonces se detuvo cualquier servidor WebLogic que se estaba ejecutando desde dentro de Eclipse y comenzó Weblogic utilizando el archivo startWebLogic.cmd
.
Luego creé una nueva configuración de depuración en Eclipse. Vaya a las configuraciones de depuración, elija 'Aplicación Java Remota', debe reconocer su proyecto, use Standard (Socket attach)
para el tipo de conexión y especifique el puerto 8453 en las propiedades de conexión.
Ahora aplique y ejecute. Establezca algunos puntos de interrupción en un fragmento de código que se ejecutará regularmente y vea si está funcionando.
Para mí esto funcionó:
En la carpeta WEBLOGIC_HOME \ user_projects \ domains \ mi_dominio \ bin
Hay un archivo setDomainEnv.cmd
En ella encontré el código:
if "%debugFlag%"=="true" (
set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava.compiler=NONE
set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -ea -da:com.bea... -da:javelin... -da:weblogic... -ea:com.bea.wli... -ea:com.bea.broker... -ea:com.bea.sbconsole...
) else (
set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -da
)
Acabo de poner las líneas para la depuración fuera de la cláusula if:
set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava.compiler=NONE
set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -ea -da:com.bea... -da:javelin... -da:weblogic... -ea:com.bea.wli... -ea:com.bea.broker... -ea:com.bea.sbconsole...
if "%debugFlag%"=="true" (
set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava.compiler=NONE
set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -ea -da:com.bea... -da:javelin... -da:weblogic... -ea:com.bea.wli... -ea:com.bea.broker... -ea:com.bea.sbconsole...
) else (
set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -da
)
Después de estos ajustes puede depurar en el puerto 8453
El puerto también está configurado en este archivo, también puede cambiarlo:
if "%DEBUG_PORT%"=="" (
set DEBUG_PORT=8453
)
Detener el servidor, ejecute la secuencia de comandos, inicie el servidor .
Ahora su servidor weblogic está configurado para la depuración.
esto funciona ... ¡gracias! –
Eso está mal, y no se puede escalar ni mantener, el 'debugFlag' se debe establecer en el entorno, junto con el puerto. La única advertencia es que en entornos de 'producción' esa bandera se ignora, incluso si está configurada. – ggb667
El mejor enfoque para permitir la depuración en el servidor WebLogic es el siguiente:
- crear un archivo de script
- poner estas líneas en la secuencia de comandos (para Windows):
conjunto debugFlag = verdadera
conjunto DEBUG_PORT = 9001
- llamada la secuencia de comandos de inicio (por ejemplo): C: \ Oracle \ Middleware \ user_projects \ domains \ domain1 \ bin \ startWebLogic.cmd)
lo tanto, no será de 3 líneas en el guión, eso es todo lo que necesita ...
también hay más variables que se pueden utilizar ....
WLS_REDIRECT_LOG = log_path < - redirigir la salida a un archivo en lugar de la ventana de la consola ...
JAVA_OPTIONS < - más opciones para el JVM
EXTRA_JAVA_PROPERTIES < - Definir propiedades Adicionales que pueda necesitar
Jonnathan Q respuesta me ayudaron para lanzar Weblogic en modo de depuración también. Para UNIX puede utilizar la sintaxis de este tipo en los scripts de shell:
debugFlag=true
export debugFlag
DEBUG_PORT=9001
export DEBUG_PORT
y luego ejecutar startWeblogic.sh y startManagedWeblogic.sh si es necesario.
ACTUALIZACIÓN: para hacer que nuestros IDE (Eclipse, IDEA) se detengan en puntos de interrupción desplegamos nuestra aplicación web en AdminServer, porque en caso de implementarse en el nodo en un entorno agrupado nuestros IDE no se detienen en los puntos de interrupción.
Creo que las otras respuestas son un poco incorrectas. Para las ventanas, si configurar una variable de entorno llamada debugFlag
para ser verdad, o en Solaris/Unix hacen lo mismo
debugFlag=true
export debugFlag
DEBUG_PORT=8453
export DEBUG_PORT
, entonces setDomainEnv.sh
o setDomainEnv.cmd
van a ser llamados a iniciar WLS por los otros scripts. Buscan el debugFlag
y el DEBUG_PORT
, siempre que la bandera de "producción" no esté configurada, recogerá los parámetros correctos del script para la depuración (-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava.compiler=NONE
).
NO DEBE ESTAR HACKING ESTOS SCRIPTS. Hará que la implementación y el mantenimiento sean difíciles, todo el propósito de la secuencia de comandos setDomainEnv
es que los valores predeterminados correctos se utilicen y mantengan en todo el clúster y en todo el entorno. Están mal documentados, lo admito.
Nota, si está usando el plugin de Oracle WebLogic experto, el objetivo wls:deploy
o wls:start-server
A continuación, recoger los valores de entorno al iniciar porque llaman los comandos bajo el capó, y los que a su vez llamar primero setDomainEnv
.
A partir de ahora, si usted está usando Eclipse y ha configurado un Oracle WebLogicServer, el plugin Maven no agregar a dicho informe en el modo de depuración cuando se emite un mvn:deploy
, puede reiniciar en modo de depuración (tonto) , o crea una 'Ejecutar ==> Depurar ==> DebugConfigurations ==> RemoteJavaApplication' con un tipo de conexión de 'estándar (socket attach)', un host de 'localhost' (o el servidor remoto) y un puerto (predeterminado para yo soy '8453'). A continuación, puede hacer Run ==> Debug Configurations ==> Local Server Attach
.
- 1. ¿Cómo se configura WorkManagers en WebLogic 10.3?
- 2. Usando maven como herramienta de compilación para Weblogic 10.3
- 3. Necesita una guía en Eclipse + Weblogic para desarrollar la aplicación web Java EE
- 4. ¿Cómo implementar remotamente una aplicación en weblogic?
- 5. ¿Dónde está WebLogic Jar que contiene javax.servlet en 10.3?
- 6. ¿Cómo configuro la aplicación web WebLogic 10.3 para usar SAML 2 SSO y el proveedor de identidad?
- 7. ¿Qué es la aplicación web Java EE?
- 8. Ejecutar Java EE aplicación en EC2
- 9. cómo implementar SAML sso usando Java, Java EE
- 10. ¿Cómo depurar correctamente Java (Android) usando Eclipse?
- 11. ¿Cómo diseñar y diseñar una aplicación web Java/Java EE?
- 12. Aplicación de ejemplo de Java EE
- 13. ¿Cómo obtener conexiones JDBC obtenidas de un origen de datos JNDI para participar en una UserTransaction usando Weblogic 10.3?
- 14. Cómo depurar la aplicación Java utilizando VIM/GVIM?
- 15. Cómo depurar la aplicación Java desde el editor Sublime Text
- 16. ¿Cómo se puede depurar la aplicación web Java en Netbeans?
- 17. Especificación Java EE y multi threading
- 18. weblogic jsessionid
- 19. ¿Puedo conectarme a SQL Server usando la Autenticación de Windows desde la aplicación web Java EE?
- 20. Cómo depurar la aplicación magento
- 21. Implementación de la aplicación Java EE en Amazon EC2
- 22. Manejo de sesión en la aplicación Java EE
- 23. Implementación de concurrencia en la aplicación web Java EE
- 24. ¿Cómo modelar en Java EE?
- 25. ¿Cómo servir un socket desde una aplicación Java EE?
- 26. ¿Cómo crear una aplicación Java EE con licencia segura?
- 27. Preferencias de usuario en la aplicación Java EE
- 28. Peligro de System.out.println en la aplicación Java EE
- 29. La aplicación se detuvo inesperadamente: ¿cómo depurar?
- 30. ¿Cómo funciona la agrupación weblogic?
Esto no funcionó para mí y, de hecho, WebLogic no se inició después de que lo probé. – jseals