En esta página se describen las limitaciones que puede encontrar al
depurar aplicaciones en
WebSphere
Application Server y los métodos sugeridos para solucionar dichas limitaciones. Consulte también el readme del producto que puede contener limitaciones adicionales para
este depurador.
Depurar objetos web
- Es posible que deba incrementar los valores de tiempo de espera de
comunicación de
Java
antes de realizar una depuración en el servidor: si tiene problemas de
conexión del depurador con la aplicación, es posible que deba incrementar los
valores de tiempo de espera de depuración de
Java.
Para determinar si tiene este problema, verifique si el archivo
<workspace>\.metadata\.log tiene mensajes
org.eclipse.jdi.TimeoutException.
Para incrementar los valores de tiempo de espera de
Java,
seleccione Ventana > Preferencias en la barra de
menús del entorno de trabajo. Expanda el nodo Java y
pulse Depurar.
En la página de preferencias depurar, incremente el tiempo
de espera de Comunicación (Tiempo de espera
del depurador (ms) y el valor de Tiempo de espera de
lanzamiento (ms); se recomienda duplicar como mínimo los valores
por defecto para estos dos campos. Si no incrementa los valores de tiempo de
espera, el depurador dejará de funcionar al realizar una depuración en el
servidor.
Para las aplicaciones que se ejecutan en
WebSphere
Application Server versión 6.0 o posterior, puede intentar reconectarse; para
ello, pulse con el botón derecho del ratón en el servidor en la vista
Servidores y seleccione Reconectar proceso de
depuración en el menú emergente.
- Es posible que el editor de código fuente no encontrado se cierre de
forma inesperada: en algunos casos, el editor Código fuente no
encontrado del depurador, que proporciona un botón con el que puede
editar la vía de acceso de búsqueda de código fuente, es posible que se cierre
inesperadamente.
Para editar la vía de acceso de búsqueda de código fuente, pulse con el botón derecho
del ratón en un objeto en la vista Depurar y seleccione
Editar búsqueda de código fuente en el menú emergente.
- La modalidad de depuración paso a paso fallará para los métodos de
inicio EJB: si utiliza el adaptador de depuración de
WebSphere
Application Server para lanzar una sesión de depuración, la modalidad de
depuración paso a paso no se detendrá para los métodos de inicio EJB. Utilice puntos de
interrupción si desea depurar estos métodos.
- Depuración de páginas JSP:
- No se permite el uso del lenguaje de expresión (EL) para depurar páginas
JSP. Por ejemplo, no es posible pasar a una línea JSP que contiene EL.
- La depuración paso a paso no funcionará para páginas JSP que no contengan
código ejecutable.
- No se permite el análisis y la visualización de variables y expresiones de JSP.
- No se permite la ejecución de línea en las páginas JSP.
- Es posible que la definición de puntos de interrupción del archivo JSP sea lenta.
Si tiene muchos puntos de interrupción de archivos JSP, el depurador tardará
más tiempo en inicializarse.
- Los puntos de interrupción en variables estáticas de los bloques de
declaración de JSP no funcionaran y es posible que generen otros problemas de
puntos de interrupción.
- Etiquetas de marco de pila después del intercambio en caliente: si,
después de una sustitución de código en caliente, algunos marcos de pila tienen
etiquetas de tipo
Línea <tipo de recepción desconocido>(<tipo de declaración
desconocido>).<nombre de método desconocido>(<argumentos desconocidos>):
no disponible <número de línea desconocido>
puede obtener las
etiquetas correctas cambiando a otra perspectiva y luego regresando a la
perspectiva de depuración.
- Cuando depure
Java,
es posible que reciba un error TimeoutException en la vista
Consola. Si se abre este mensaje de error, incremente el
tiempo de espera del depurador para evitar el error.
Para incrementar el valor de tiempo de espera del depurador, seleccione
Ventana > Preferencias en la barra de menús del
entorno de trabajo para abrir el cuadro de diálogo
Preferencias. En este cuadro de diálogo, abra el nodo
Java y seleccione el nodo
Ejecutar/depurar. En la página de preferencias
Depurar resultante, incremente el valor del campo
Tiempo de espera de depurador en la sección
Comunicación.
- Problema de vía de acceso de búsqueda de código fuente al conectarse a
WebSphere
Application Server v7.0: cuando se conecta a
WebSphere
Application Server v7.0 utilizando la configuración de lanzamiento de
WebSphere
Application Server, es posible que la vía de acceso de búsqueda de código fuente
predeterminada contenga el archivo src.jar del tiempo de
ejecución
Java
del apéndice de WebSphere
Application Server v6.1 para la búsqueda de código fuente de JRE. Puede editar la vía de acceso
de búsqueda de código fuente para eliminar el archivo src.jar
del apéndice WebSphere
Application Server v6.1 y añadir el archivo src.jar del JRE de
WebSphere
Application Server v7.0.
Depuración de páginas JSP
- Pueden definirse puntos de interrupción en los archivos JSP en las siguientes etiquetas:
- Fragmentos de código JSP con este formato: <% %>
- Expresiones JSP con este formato: <%= %>
- Declaraciones JSP con este formato: <%! %>
- Etiquetas jsp:useBean, jsp:getProperty y
jsp:setProperty
- Etiquetas personalizadas
- No se pueden definir puntos de interrupción para los siguientes conjuntos
de etiquetas:
- Código HTML
- Directivas JSP
- Todas las demás etiquetas JSP estándar jsp:include,
jsp:forward, etc.)
- Si realiza la migración a un espacio de trabajo desde una versión anterior
de
WebSphere
Studio a esta versión, deberá suprimir los puntos de interrupción de los
archivos JSP y volver a crearlos.
Sustitución de método en caliente
- No se permiten cambios en el código fuente que afecten a la forma de la clase.
Esto significa que los cambios realizados en el cuerpo del método no se
sustituirán en caliente. A continuación se muestran ejemplos de cambios que
no se sustituirán en caliente:
- Los cambios en la estructura de clases, como la eliminación/adición
de métodos, y cambios en la firma de un método existente.
- La modificación de variables de clase.
- Los cambios en las clases internas.
Si cambia la forma de la clase añadiendo o eliminando un campo o un método,
o como se ha descrito anteriormente,l es posible que reciba un error con un mensaje
que indica que el cambio de esquema no se ha implementado, como se ilustra a continuación:
Este error indica que ha realizado una sustitución de código en caliente no
soportada, y que la máquina virtual no ha procesado el cambio. Es posible que
también vea un mensaje que indique la falta de sincronización en los marcos
depila o en las hebras de la vista de depuración. Estos mensajes deberían
desaparecer si deshace el cambio no soportado.
- Los cambios de código en el marco de pila inferior (método
main(...)) no pueden sustituirse.
- Los cambios en código al que métodos nativos hacen referencia de forma
directa no pueden sustituirse.
En la vista de depuración, todos los métodos
nativos de la pila presentan la indicación "[método nativo]" junto al marco de
pila, como se muestra a continuación:
Imagínese, por ejemplo,
que el depurador está suspendido en methodA,
que se ha llamado desde methodB y que realiza un cambio en el cuerpo de
methodA. La sustitución de código en caliente no se producirá
si methodB es un método nativo. No podrá sustituir los métodos
invocados a través de la reflexión si está suspendido en estos métodos. Como
ejemplo de métodos invocados a través de la reflexión cabe citar las
construcciones llamadas a través de Class.newInstance() y
Method.invoke().
Si cambia el cuerpo de un método invocado por código nativo mientras el
depurador está suspendido allí, es posible que vea un diálogo de error que
indique que hay métodos obsoletos en la pila, como se muestra a continuación:
Continuando con el ejemplo anterior, dado que methodA se ha
modificado, el método methodA original anterior al cambio es
ahora obsoleto.
No obstante, la máquina virtual no puede ejecutar el nuevo método
methodA porque se llama desde un método nativo, y, por consiguiente,
continuará utilizando el contenido antiguo y ahora obsoleto de methodA.
- La depuración de páginas JSP no admite la sustitución de métodos en caliente
del código Java.
Limitaciones de idiomas bidireccionales (BIDI/BiDi)
No
podrá utilizar el editor del depurador cuando depure archivos JSP que hayan
sido codificados en una página de códigos que no sea la nativa.