Conseils de traitement des incidents liés à JavaServer Pages

Ces conseils permettent de résoudre des incidents liés à JavaServer Pages.

Code source JavaServer Pages affiché par le serveur Web

Si vous partagez le répertoire principal des documents WebSphere Application Server avec le répertoire principal des documents du serveur Web, les règles de sécurité risquent d'être enfreintes car le serveur Web peut afficher le fichier source JavaServer Pages (JSP) sous forme de texte normal.

Incident
Vous pouvez utiliser le groupe de règles disponible dans le plug-in du serveur Web WebSpherepour déterminer si une requête donnée doit être traitée par le système WebSphere Application Server. Lorsqu'une requête entrante ne correspond pas aux règles indiquées, le plug-in du serveur Web fait appel au serveur Web afin que celui-ci traite la requête. Dans ce cas de figure, l'en-tête de l'hôte inconnu oblige le plug-in à faire appel au serveur Web car les règles n'indiquent pas que le système WebSphere Application Server doit traiter ce type d'en-tête. Le serveur Web recherche la requête dans le répertoire principal des documents du serveur Web. Comme le fichier source JSP est stocké dans le répertoire principal des documents du serveur Web, celui-ci identifie l'emplacement du fichier et l'affiche au format texte normal.
Solution proposée
Placez le fichier source JSP deWebSphere Application Server hors du répertoire principal des documents sur le serveur Web. Lorsque cette requête est transmise avec l'en-tête d'un hôte inconnu, le plug-in fait appel au serveur Web et le fichier source JSP n'est plus disponible dans le répertoire principal des documents. Le serveur Web renvoie une erreur 404 File Not Found à la place du fichier source JSP.

Incidents lors de l'affichage de caractères issus du jeu de caractère à deux octets (DBCS) lors de l'utilisation de la directive @include

Les fichiers JavaServer Pages qui utilisent la directive @include peuvent rencontrer des problèmes lors de l'affichage de caractères du jeu de caractères à deux octets (DBCS). Certaines applications migrées sur WebSphere Application Server version 6.0 et ultérieure doivent être modifiées pour être conformes à la spécification JSP 2.0 en vue d'assurer la rétrocompatibilité. La spécification JSP 2.0 nécessite que chaque ressource incluse de manière statique doit définir un encodage de page ou un type de contenu car l'encodage des caractères de chaque fichier est déterminé séparément, même si un fichier en inclut un autre à l'aide de la directive d'inclusion.

Problèmes lors de l'utilisation du moteur JavaServer Pages (JSP)

En cas d'incident lors de l'utilisation du moteur JSP (JavaServer Pages), procédez comme suit :
  1. Déterminez si d'autres ressources, telles que des fichiers .html ou des servlets sont requises et affichées correctement. Si elles ne le sont pas, l'incident se situe probablement à un niveau plus profond, tel que celui du serveur HTTP.
  2. Si les autres ressources s'affichent correctement, déterminez comme suit si le processeur JSP a démarré normalement :
    • [AIX Solaris HP-UX Linux Windows][IBM i]Parcourez les journaux JVM du serveur qui héberge les fichiers JSP auxquels vous tentez d'accéder. Les messages suivants indiquent que le processeur a démarré normalement :
      Le processeur d'extension [class com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      a été initialisé avec succès. 
      Le processeur d'extension [class com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      a été associé aux motifs [*.jsp *.jspx *.jsw *.jsv ].
      Si le chargement du processeur JSP échoue, un message similaire s'affiche:
      Aucun processeur d'extension ne prend en charge les JSP.
      Processeur JSP non défini. nomfichierjsp non traité.
      dans le fichier rép_racine/logs/nom_serveur/SystemOut.log
    • [z/OS]Parcourez les journaux du serveur qui héberge les fichiers JSP auxquels vous tentez d'accéder. Les messages suivants indiquent que le processeur a démarré normalement :
      Le processeur d'extension [class com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      a été initialisé avec succès. 
      Le processeur d'extension [class com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      a été associé aux motifs [*.jsp *.jspx *.jsw *.jsv ].
      Si le chargement du processeur JSP échoue, un message similaire s'affiche:
      Aucun processeur d'extension ne prend en charge les JSP.
      Processeur JSP non défini. nomfichierjsp non traité.
      dans les fichiers journaux du serveur.
  3. Si le moteur JSP a démarré normalement, l'incident se situe peut-être au niveau du fichier JSP lui-même.
    • [AIX Solaris HP-UX Linux Windows][IBM i]Il se peut que le JSP comporte des instructions erronées et ne soit donc pas pris en charge par le processeur JSP. Examinez le fichier rép_racine/logs/nom_serveur/SystemOut.log de l'application cible à la recherche de messages relatifs à des erreurs de syntaxe dans la directive JSP. Le navigateur signale des erreurs de ce type de la façon suivante :
      Message : /nomfichier.jsp(2,1)JSPG0076E : Page d'attribut requis manquante pour JSP 
                   element jsp:include 
      Cet exemple signale qu'un attribut obligatoire de l'action jsp:include est manquant en ligne 2, colonne 1 du fichier JSP nommé. Des messages identiques s'affichent pour les autres erreurs de syntaxe.
    • [z/OS]Il se peut que le JSP comporte des instructions erronées et ne soit donc pas pris en charge par le processeur JSP. Examinez les fichiers journaux du serveur de l'application cible à la recherche de messages relatifs à des erreurs de syntaxe dans la directive JSP. Le navigateur signale des erreurs de ce type de la façon suivante :
      Message : /nomfichier.jsp(2,1)JSPG0076E : Page d'attribut requis manquante pour JSP 
                  element jsp:include 
      Cet exemple signale qu'un attribut obligatoire de l'action jsp:include est manquant en ligne 2, colonne 1 du fichier JSP nommé. Des messages identiques s'affichent pour les autres erreurs de syntaxe.
    • Vérifiez si la syntaxe Java™ des fichiers SystemErr.log du serveur d'applications cible est valide. Ce type d'erreur est signalé par un message similaire à Message : Impossible de compiler la classe pour JSP affiché dans un navigateur.
      Le message d'erreur en sortie du compilateur Java est enregistré dans le fichier SystemErr.log. Il peut se présenter ainsi :
      JSPG0091E : Une erreur s'est produite à la ligne 2 du fichier /monJsp.jsp 
      JSPG0093E: Generated servlet error: c:\WASROOT\temp\ ... 
      test.war\_myJsp.java:16: myInt is already defined in com.ibm.ws.jsp20._myJsp 
      int myInt = 122; String myString = "numéro 122"; static int myStaticInt=22; 
      int myInt=121;                    
               ^  1 error

      Rectifiez l'erreur dans le fichier JSP et essayez de nouveau le fichier.

    • Vérifiez si la syntaxe Java des fichiers journaux de l'application cible est valide. Ce type d'erreur est signalé par un message similaire à Message : Impossible de compiler la classe pour JSP affiché dans un navigateur.
      [AIX Solaris HP-UX Linux Windows][IBM i]Le message d'erreur en sortie du compilateur Java est enregistré dans le fichier SystemErr.log. Il peut se présenter ainsi :
      JSPG0091E : Une erreur s'est produite à la ligne 2 du fichier /monJsp.jsp 
      JSPG0093E: Generated servlet error: c:\WASROOT\temp\ ... 
      test.war\_myJsp.java:16: myInt is already defined in com.ibm.ws.jsp20._myJsp 
      int myInt = 122; String myString = "numéro 122"; static int myStaticInt=22; 
      int myInt=121;                    
               ^  1 error
      [z/OS]Le message d'erreur en sortie du compilateur Java est enregistré dans les fichiers journaux du serveur. Il peut se présenter ainsi :
      JSPG0091E : Une erreur s'est produite à la ligne 2 du fichier /monJsp.jsp 
      JSPG0093E: Generated servlet error: c:\WASROOT\temp\ ... 
      test.war\_myJsp.java:16: myInt is already defined in com.ibm.ws.jsp20._myJsp 
      int myInt = 122; String myString = "numéro 122"; static int myStaticInt=22; 
      int myInt=121;                    
               ^  1 error

      Rectifiez l'erreur dans le fichier JSP et essayez de nouveau le fichier.

Remarque : Cette rubrique fait référence à un ou plusieurs des fichiers journaux de serveur d'applications. Il est recommandé de configurer le serveur de telle sorte qu'il utilise l'infrastructure de journalisation et de trace HPEL (High Performance Extensible Logging) à la place des fichiers SystemOut.log, SystemErr.log, trace.log et activity.log sur les systèmes distribués et IBM® i. Vous pouvez également utiliser HPEL conjointement avec vos fonctions de journalisation z/OS natives. Si vous utilisez l'infrastructure HPEL, vous pouvez accéder à toutes les informations de journalisation et de trace en utilisant l'outil de ligne de commande LogViewer à partir de votre répertoire bin de profil de serveur. Pour plus d'informations sur l'utilisation de HPEL, voir les informations sur l'utilisation de HPEL en vue du traitement des incidents liés aux applications.

JavaServer Pages ne peut pas compiler lors de l'utilisation de la précompilation

Symptôme Incident Solution proposée
JavaServer Pages ne peut pas compiler lors du déploiement via la console d'administration lorsque la précompilation est sélectionnée.
SystemErr R com.ibm.websphere.management.exception.AdminException: 
ADMA0021E: Erreur lors de la compilation de jsps - xyz.war (rc=1)
JavaServer Pages ne peut pas compiler lors du déploiement via la console d'administration lorsque la précompilation est sélectionnée, alors qu'une dépendance d'un autre fichier JAR Java n'est disponible dans aucun chemin d'accès de classes. Vous pouvez utiliser des scripts wsadmin pour précompiler les fichiers JSP pendant le déploiement d'application d'entreprise. Mais si vous souhaitez utiliser la console d'administration, compilez alors tous les fichiers JSP avant de regrouper l'application.
  1. Ajoutez le fichier JAR dépendant au gestionnaire de déploiement dans un environnement de cellule.
    1. Sélectionnez Administration du système > Gestionnaire de déploiement > Gestion des processus et Java > Définition des processus > Machine virtuelle Java dans la navigation de la console.
    2. Ajoutez le fichier JAR dépendant complet dans la zone du chemin de classes.
    3. Cliquez sur OK.
    4. Relancez le gestionnaire de déploiement.

JSPG0089E : Discordance détectée entre l'encodage Shift_JIS de la directive de page et l'encodage UTF-8 prolog xml

Symptôme Incident Solution proposée
L'erreur suivante apparaît :
Erreur de traitement JSP

Code d'erreur HTTP : 500

Error Message: /test.jsp(2,1) 
	/test.jsp(2,1) JSPG0089E: 
	Non-concordance détectée entre 
	le codage de directive page Shift_JIS 
	et le code de prologue xml UTF-8
L'attribut pageEncoding de l'élément jsp:directive.page n'est pas au format UTF-8. Le fichier JavaServer Pages doit spécifier un prolog qui correspond à l'encodage indiqué dans la directive de la page. Par exemple, avec
<?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>

Pour obtenir plus d'informations, voir la section JSP.4.1, Page Character Encoding, de la spécification JavaServer Pages et la section 4.3.3 et annexe F.1 de la spécification XML (Extensible Markup Language)

Lorsqu'aucune de ces opérations ne résout l'incident, vérifiez s'il a été identifié et documenté en utilisant les liens de la rubrique Diagnostics et résolution des incidents : Ressources d'apprentissage. Si vous ne trouvez pas d'incident similaire au vôtre, ou que les informations fournies ne permettent pas de le résoudre, prenez contact avec le support technique IBM.

Pour obtenir les informations récentes sur les incidents recensés et leur traitement disponibles auprès du support IBM, accédez à la page de support IBM. La page IBM Support contient des documents permettant de collecter plus rapidement les informations requises pour résoudre cet incident.


Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_jspcomp
Nom du fichier : rtrb_jspcomp.html