2011-02-18 22 views

Respuesta

3

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.

+0

Esto no funcionó para mí y, de hecho, WebLogic no se inició después de que lo probé. – jseals

6

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.

+0

esto funciona ... ¡gracias! –

+1

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

3

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

0

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.

7

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.

Cuestiones relacionadas