Sugerencias para la resolución de problemas con JSP (JavaServer Pages)

Utilice estas sugerencias para resolver los problemas con JSP (JavaServer Pages).

El código fuente de JavaServer Pages mostrado por el servidor web

Si comparte la raíz del documento de WebSphere Application Server con la raíz de documento del servidor web, se puede producir una exposición de seguridad ya que el servidor web podría mostrar el archivo de origen JSP (JavaServer Pages) como texto sin formato.

Problema
Puede utilizar el conjunto de reglas del plug-in del servidor Web de WebSphere para determinar si WebSphere Application Server manejará una solicitud determinada. Cuando una solicitud de entrada no puede coincidir con estas reglas, el plug-in de servidor web devuelve el control al servidor web de forma que el servidor web puede cumplir la solicitud. En este caso, la cabecera de host desconocido provoca que el plug-in de servidor web devuelva el control al servidor web porque las reglas no indican que el servidor WebSphere Application Server deba manejar la solicitud. Por lo tanto, el servidor web busca la solicitud en la raíz de documento del servidor web. Puesto que el archivo de origen JSP está almacenado en la raíz del documento del servidor web, el servidor web encuentra el archivo y lo muestra como texto sin formato.
Solución sugerida
Mueva el archivo de origen JSP de WebSphere Application Server fuera de la raíz de documento del servidor web. A continuación, esta solicitud llega con la cabecera de host desconocido, el plug-in devuelve el control al servidor web y el archivo de origen JSP no se encuentra en la raíz del documento. Por lo tanto, el servidor web devuelve un error 404 No se ha encontrado el archivo, en lugar del archivo de origen JSP.

Problemas al visualizar los caracteres del juego de caracteres de doble byte (DBCS) cuando se utiliza la directiva @include.

Los archivos JSP (JavaServer Pages) que utilizan la directiva @include pueden sufrir problemas cuando visualizan caracteres del juego de caracteres de doble byte (DBCS). Es posible que sea necesario modificar algunas aplicaciones que se migran a WebSphere Application Server Versión 6.0 y posterior para que cumplan con la especificación JSP 2.0 debido a problemas de compatibilidad con versiones anteriores. La especificación JSP 2.0 requiere que cada recurso incluido estáticamente debe establecer una codificación de páginas o un tipo de contenido porque la codificación de caracteres para cada archivo se determina por separado incluso si un archivo incluye otro utilizando la directiva include.

Problemas con el motor JSP (JavaServer Pages)

Si tiene alguna dificultad cuando utiliza el motor JSP (JavaServer Pages), lleve a cabo estos pasos:
  1. Determine si hay otros recursos como, por ejemplo, archivos .html o servlets que se estén solicitando y visualizando correctamente. Si no es así, es probable que el nivel del problema sea más profundo, por ejemplo, que sea a nivel del servidor HTTP.
  2. Si se están visualizando correctamente otros recursos, determine si el procesador JSP se ha iniciado normalmente:
    • [AIX Solaris HP-UX Linux Windows][IBM i]Examine los registros de JVM del servidor que alberga los archivos JSP a los que está intentando acceder. Los mensajes siguientes indican que el procesador JSP se ha iniciado normalmente:
      El procesador de extensiones [class
      com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      se ha inicializado satisfactoriamente. 
      El procesador de extensiones [class
      com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      se ha asociado con los patrones [*.jsp *.jspx *.jsw *.jsv ].
      Si el procesador JSP no puede cargarse, aparecerá un mensaje como el siguiente
      No se ha encontrado ningún procesador de extensiones para manejar las JSP.
      El procesador JSP no se ha definido. Se ignora : jspfilename.
      en el archivo dir_raíz/logs/nombre_servidor/SystemOut.log
    • [z/OS]Examine los registros del servidor que alberga los archivos JSP a los que está intentando acceder. Los mensajes siguientes indican que el procesador JSP se ha iniciado normalmente:
      El procesador de extensiones [class
      com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      se ha inicializado satisfactoriamente. 
      El procesador de extensiones [class
      com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      se ha asociado con los patrones [*.jsp *.jspx *.jsw *.jsv ].
      Si el procesador JSP no puede cargarse, aparecerá un mensaje como el siguiente
      No se ha encontrado ningún procesador de extensiones para manejar las JSP.
      El procesador JSP no se ha definido. Se ignora : jspfilename.
      en los archivos de registro del servidor.
  3. Si el motor de JSP se ha iniciado con normalidad, es posible que el problema se deba al propio archivo JSP.
    • [AIX Solaris HP-UX Linux Windows][IBM i]Es posible que la JSP no tenga una sintaxis de JSP válida y el procesador JSP no haya podido procesarlo. Examine el archivo dir_raíz/logs/nombre_servidor/SystemOut.log de la aplicación de destino de los mensajes de sintaxis de directiva JPS no válidos. Si aparecen errores similares al siguiente en un navegador significa que existe este tipo de problema:
      Mensaje: /filename.jsp(2,1)JSPG0076E: Falta la página de
      atributos necesaria para el elemento jsp 
                   element jsp:include 
      Este ejemplo indica que a la línea 2, columna 1 del archivo JavaServer Pages nombrado le falta un atributo obligatorio para la acción jsp:include. Para otros errores de sintaxis se visualizan mensajes similares.
    • [z/OS]Es posible que la JSP no tenga una sintaxis de JSP válida y el procesador JSP no haya podido procesarlo. Examine los archivos de registro del servidor de la aplicación de destino de los mensajes de sintaxis de directiva JPS no válidos. Si aparecen errores similares al siguiente en un navegador significa que existe este tipo de problema:
      Mensaje: /filename.jsp(2,1)JSPG0076E: Falta la página de
      atributos necesaria para el elemento jsp 
                  element jsp:include 
      Este ejemplo indica que a la línea 2, columna 1 del archivo JavaServer Pages nombrado le falta un atributo obligatorio para la acción jsp:include. Para otros errores de sintaxis se visualizan mensajes similares.
    • Examine los archivos SystemErr.log del servidor de aplicaciones de destino para ver si hay problemas de sintaxis Java™ no válida. Si en un navegador aparecen mensajes similar al siguiente: Mensaje: no se puede compilar la clase para JSP significa que existe este tipo de problema.
      Encontrará la salida del mensaje de error del compilador Javac en el archivo SystemErr.log. Es posible que sea similar a lo siguiente:
      JSPG0091E: Se ha producido un error
      en la línea: 2 en el archivo: /myJsp.jsp 
      JSPG0093E: Error de servlet generado: c:\WASROOT\temp\ ... 
      test.war\_myJsp.java:16: myInt ya está definida en com.ibm.ws.jsp20._myJsp 
      int myInt = 122; String myString = "number is 122"; static int myStaticInt=22; 
      int myInt=121;                    
               ^  1 error

      Corrija el error en JSP y vuelva a intentarlo.

    • Examine los archivos de registro de la aplicación de destino para ver si hay problemas de sintaxis no válida de Java. Si en un navegador aparecen mensajes similar al siguiente: Mensaje: no se puede compilar la clase para JSP significa que existe este tipo de problema.
      [AIX Solaris HP-UX Linux Windows][IBM i]La salida del mensaje de error desde el compilador Javac puede encontrarse en SystemErr.log. Es posible que sea similar a lo siguiente:
      JSPG0091E: Se ha producido un error
      en la línea: 2 en el archivo: /myJsp.jsp 
      JSPG0093E: Error de servlet generado: c:\WASROOT\temp\ ... 
      test.war\_myJsp.java:16: myInt ya está definida en com.ibm.ws.jsp20._myJsp 
      int myInt = 122; String myString = "number is 122"; static int myStaticInt=22; 
      int myInt=121;                    
               ^  1 error
      [z/OS]La salida del mensaje de error desde el compilador Javac puede encontrarse en los archivos de registro del servidor. Es posible que sea similar a lo siguiente:
      JSPG0091E: Se ha producido un error
      en la línea: 2 en el archivo: /myJsp.jsp 
      JSPG0093E: Error de servlet generado: c:\WASROOT\temp\ ... 
      test.war\_myJsp.java:16: myInt ya está definida en com.ibm.ws.jsp20._myJsp 
      int myInt = 122; String myString = "number is 122"; static int myStaticInt=22; 
      int myInt=121;                    
               ^  1 error

      Corrija el error en JSP y vuelva a intentarlo.

Nota: En este tema se hace referencia a uno o más de los archivos de registro del servidor de aplicaciones. Como alternativa recomendada, puede configurar el servidor para utilizar la infraestructura de registro y rastreo HPEL en lugar de utilizar los archivos SystemOut.log , SystemErr.log, trace.log y activity.log en sistemas distribuidos y de IBM® i. Puede también utilizar HPEL junto con sus recursos de registro nativos de z/OS. Si utiliza HPEL, puede acceder a toda la información de registro y rastreo utilizando la herramienta de línea de mandatos LogViewer desde el directorio bin de perfil de servidor. Consulte la información sobre la utilización de HPEL para resolver problemas de aplicaciones para obtener más información sobre la utilización de HPEL.

Las JSP (JavaServer Pages) no se compilan cuando se utiliza la precompilación

Síntoma Problema Solución sugerida
Los archivos JSP (JavaServer Pages) no se compilan durante el despliegue a través de la consola administrativa cuando se selecciona la precompilación.
SystemErr R com.ibm.websphere
 .management.exception
 .AdminException: 
ADMA0021E: Error al compilar jsps -
 xyz.war (rc=1)
Los archivos JSP (JavaServer Pages) no se compilan durante el despliegue a través de la consola administrativa cuando se selecciona la precompilación si hay una dependencia con otro archivo JAR (Java Archive) que no está disponible en ninguna vía de acceso a clases. Puede utilizar los scripts wsadmin para precompilar los archivos JSP durante el despliegue de aplicaciones empresariales. No obstante, si desea utilizar la consola administrativa, compile todos los archivos JSP antes de empaquetar la aplicación.
  1. Añada el archivo JAR dependiente al gestor de despliegue en un entorno de célula.
    1. Pulse Administración del sistema > Gestor de despliegue > Java y gestión de procesos > Definición de proceso > Máquina virtual Java en la consola.
    2. Añada el archivo JAR dependiente totalmente cualificado en el campo de vía de acceso a clases.
    3. Pulse Aceptar.
    4. Reinicie el gestor de despliegue.

JSPG0089E: Se ha encontrado una falta de coincidencia en la codificación de la directiva de página Shift_JIS y la codificación de prólogo xml UTF-8

Síntoma Problema Solución sugerida
Aparece el error siguiente:
Error de proceso JSP

Código de error HTTP: 500

Mensaje de error: /test.jsp(2,1) 
	/test.jsp(2,1) JSPG0089E: 
	Se ha encontrado una discrepancia entre
	la codificación de la directiva de página
	Shift_JIS y la codificación de prólogo xml UTF-8
El atributo pageEncoding del elemento jsp:directive.page no es UTF-8. Los archivos JSP (JavaServer Pages) deben especificar un prólogo que coincida con la codificación especificada en la directiva de página. Por ejemplo,
<?xml version="1.0" encoding="Shift_JIS"?>
<jsp:root xmlns:jsp="http://java.sun.com/
 JSP/Page" version="2.0">
<jsp:directive.page language="java" 
 contentType="text/html";
	charset=Shift_JIS pageEncoding=
	 "Shift_JIS"/>
<jsp:text>XXXXXjsp:text>XXXXX>
</jsp:root>

Para obtener información adicional, consulte la sección JSP.4.1, codificación de caracteres de página, en la especificación JSP (JavaServer Pages) y la sección 4.3.3 y el apéndice F.1 de la especificación XML (Extensible Markup Language).

Si ninguno de estos pasos resuelve el problema, compruebe si el problema se ha identificado y está documentado utilizando los enlaces del apartado Diagnóstico y solución de problemas: recursos de aprendizaje. Si no encuentra ningún problema que se parezca la suyo, o si la información proporcionada no resuelve el problema, póngase en contacto con el soporte de IBM para recibir ayuda adicional.

Para obtener información actual disponible del servicio de soporte de IBM sobre problemas conocidos y su resolución, consulte la página de servicio de soporte de IBM. La página del servicio de soporte de IBM contiene documentos que pueden ahorrarle tiempo en la recopilación de la información necesaria para resolver este problema.


Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_jspcomp
File name: rtrb_jspcomp.html