Paramètres de rechargement des fichiers JavaServer Pages (JSP) lors de l'exécution

Les fichiers JavaServer Pages (JSP) peuvent être translatés et compilés lors de l'exécution si le fichier JSP ou ses dépendances sont modifiés. Cette opération est appelée "rechargement JSP".

Pratiques recommandées Pratiques recommandées: Utilisez un outil d'assemblage tel que Rational Application Developer pour modifier les fichiers des extensions et liaisons IBM. Les fichiers d'extensions et de liaisons contenus dans les modules peuvent être convertis de XMI en XML à l'aide de l'outil IBM Bindings and Extensions Conversion Tool for Multi-Platforms.bprac

Le rechargement JSP est activé via le paramètre reloadEnabled du moteur JSP dans le fichier WEB-INF/ibm-web-ext.xmi ou WEB-INF/ibm-web-ext.xml.

Exemple pour ibm-web-ext.xmi :
<jspAttributes xmi:id="JSPAttribute_1" name="reloadEnabled" value="true"/>
Exemple pour ibm-web-ext.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
   xmlns="http://websphere.ibm.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
      version="1.0">
	
   <jsp-attribute name="trackDependencies" value="true" />
   <jsp-attribute name="disableJspRuntimeCompilation" value="true" />
   <jsp-attribute name="reloadEnabled" value="true"/>

   <reload-interval value="5"/>
   <auto-encode-requests value="false"/>
   <auto-encode-responses value="false"/>
   <enable-directory-browsing value="false"/>
   <enable-file-serving value="false"/>
   <pre-compile-jsps value="false"/>
   <enable-reloading value="true"/>
   <enable-serving-servlets-by-class-name value="false" />	
</web-ext>
Configurations prises en charge Configurations prises en charge: Pour les fichiers de liaison et d'extension IBM®, l'extension de nom de fichier .xmi ou .xml est différente selon que vous utilisiez un module ou une application antérieure à Java EE 5 ou un module ou une application ultérieure à Java™ EE 5. Un fichier de liaison ou d'extension IBM porte le nom ibm-*-ext.xmi ou ibm-*-bnd.xmi où * correspond au fichier d'extension ou de liaison, tel app, application, ejb-jar ou web. Les conditions suivantes s'appliquent :
  • Pour une application ou un module qui utilise une version Java EE antérieure à la version 5, l'extension de fichier doit être .xmi.
  • Pour une application ou un module qui utilise Java EE 5 ou version ultérieure, l'extension de fichier doit être .xml. Si des fichiers .xmi sont inclus dans l'application ou le module, le produit les ignore.

Toutefois, un module Java EE 5 ou version ultérieure peut exister dans une application qui inclut des fichiers antérieurs à Java EE 5 et utilise l'extension de nom de fichier .xmi.

Les fichiers ibm-webservices-ext.xmi, ibm-webservices-bnd.xmi, ibm-webservicesclient-bnd.xmi, ibm-webservicesclient-ext.xmi et ibm-portlet-ext.xmi continuent d'utiliser les extensions de fichier .xmi.

sptcfg
Le tableau ci-dessous contient les paramètres de rechargement suggérés pour les environnements de production et de développement.
Tableau 1. Paramètres de rechargement suggérés pour les environnements de production et de développement.. Paramètres de rechargement
Attribut de configuration Paramètre d'environnement de production Paramètre d'environnement de développement
reloadEnabled false true
reloadInterval non dispo (ignoré si reloadEnabled a pour valeur false) environ 5 secondes
trackDependencies non dispo (ignoré si reloadEnabled a pour valeur false) true - vous pouvez définir la valeur false pour améliorer le temps de réponse si les dépendances ne sont pas modifiées
disableJspRuntimeCompilation true - vous pouvez définir la valeur false si les fichiers JSP ne sont pas précompilés et par conséquent, ne doivent pas être compilés lors de la première requête false

La valeur par défaut du paramètre reloadEnabled est true. Si le paramètre reloadEnabled a pour valeur true, un fichier JSP est rechargé lors de l'exécution si son horodatage et celui de son fichier classe ne sont pas identiques. De plus, si le paramètre trackDependencies a pour valeur true, le fichier JSP est rechargé si l'horodatage de l'une de ses dépendances a changé depuis la dernière génération du fichier classe JSP. Si le paramètre reloadEnabled a pour valeur false, un fichier JSP est tout de même compilé si nécessaire lors de la première requête sauf si le paramètre disableJspRuntimeCompilation a la valeur true. Par exemple, lorsque disableJspRuntimeCompilation et reloadEnabled ont pour valeur false, le fichier JSP est compilé lors de la première requête si la date du fichier classe n'est pas à jour. Il n'est pas compilé lors des requêtes suivantes même si le fichier source JSP est modifié ou si le fichier classe est supprimé, sauf si reloadEnabled a pour valeur true.

Intervalle de rechargement

L'intervalle de rechargement est défini avec le paramètre du moteur JSP reloadInterval.

Exemple pour ibm-web-ext.xmi :
<jspAttributes xmi:id=JSPAttribute_1 name=reloadInterval value=5/>
Exemple pour ibm-web-ext.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
   xmlns="http://websphere.ibm.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
      version="1.0">
	
   <jsp-attribute name="trackDependencies" value="true" />
   <jsp-attribute name="disableJspRuntimeCompilation" value="true" />
   <jsp-attribute name="reloadInterval" value="5"/>

   <reload-interval value="5"/>
   <auto-encode-requests value="false"/>
   <auto-encode-responses value="false"/>
   <enable-directory-browsing value="false"/>
   <enable-file-serving value="false"/>
   <pre-compile-jsps value="false"/>
   <enable-reloading value="true"/>
   <enable-serving-servlets-by-class-name value="false" />	
</web-ext>

Si le rechargement est activé, la valeur du paramètre reloadInterval définit l'intervalle entre les vérifications permettant de déterminer si un fichier JSP n'est plus à jour. Par exemple, si reloadInterval a pour valeur 5, le moteur JSP vérifie si un fichier JSP est à jour uniquement si une telle vérification a été effectuée plus de cinq secondes avant la requête du fichier JSP. Une fois la valeur de reloadInterval dépassée, une vérification de rechargement est effectuée et le chronomètre de l'intervalle de rechargement est réinitialisé pour ce fichier JSP. Plus la valeur de reloadInterval est élevée, moins le moteur JSP vérifie s'il est nécessaire de recharger un fichier JSP.

Suivi des dépendances

Le suivi des dépendances est défini avec le paramètre du moteur JSP trackDependencies.

Exemple pour ibm-web-ext.xmi :
<jspAttributes xmi:id="JSPAttribute_1" name="trackDependencies" value="true"/>
Exemple pour ibm-web-ext.xmi :
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
   xmlns="http://websphere.ibm.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
      version="1.0">
	
   <jsp-attribute name="trackDependencies" value="true" />
   <jsp-attribute name="disableJspRuntimeCompilation" value="true" />
   <jsp-attribute name="reloadInterval" value="5"/>

   <reload-interval value="5"/>
   <auto-encode-requests value="false"/>
   <auto-encode-responses value="false"/>
   <enable-directory-browsing value="false"/>
   <enable-file-serving value="false"/>
   <pre-compile-jsps value="false"/>
   <enable-reloading value="true"/>
   <enable-serving-servlets-by-class-name value="false" />	
</web-ext>
Si le rechargement est activé, le paramètre trackDependencies détermine si le moteur JSP fait le suivi des modifications apportées aux dépendances des fichiers JSP demandés ainsi qu'aux fichiers JSP eux-mêmes. Il existe trois types de dépendances suivies par le moteur JSP :
  • les fichiers inclus statiquement dans le fichier JSP,
  • les fichiers de balises référencés dans le fichier JSP (à l'exception des fichiers de balises qui se trouvent dans les fichiers JAR),
  • les fichiers de balises référencés dans le fichier JSP (à l'exception des fichiers de balises qui se trouvent dans les fichiers JAR),
Les informations de suivi des dépendances sont toujours incluses dans le fichier classe généré même si le paramètre trackDependencies a pour valeur false. Elles ne sont pas utilisées par le moteur JSP ni par le compilateur par lots sauf si le paramètre trackDependencies a pour valeur true. En d'autres termes, vous pouvez activer le suivi des dépendances sans qu'il soit nécessaire de recompiler les fichiers JSP.

Par exemple, le fichier toplevel.jsp inclut statiquement le fichier footer.jspf. Lorsque le fichier toplevel.jsp est compilé, le chemin d'accès au fichier footer.jspf et son horodatage sont stockés dans le fichier classe de toplevel.jsp. Ainsi, le fichier footer.jspf est modifié et le fichier toplevel.jsp est demandé. Une fois l'intervalle de rechargement pour le fichier toplevel.jsp dépassé, le moteur JSP compare l'horodatage stocké dans le fichier classe à l'horodatage du fichier footer.jspf sur le disque. Etant donné que les horodatages sont différents, le fichier toplevel.jsp est compilé et inclut la modification apportée au fichier footer.jspf. Pour que le suivi des dépendances fonctionne, la valeur de trackDependencies doit être true lorsque le fichier JSP est demandé lors de l'exécution ou lorsqu'il est traité par le compilateur par lots.

Désactivation de la compilation

La désactivation de la compilation des pages JSP lors de l'exécution est définie avec le paramètre du moteur JSP disableJspRuntimeCompilation.

Exemple pour ibm-web-ext.xmi :
<jspAttributes xmi:id="JSPAttribute_1" name="disableJspRuntimeCompilation" value="true"/>
Exemple pour ibm-web-ext.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
   xmlns="http://websphere.ibm.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
      version=1.0>
	
   <jsp-attribute name="trackDependencies" value="true" />
   <jsp-attribute name="disableJspRuntimeCompilation" value="true" />
   <jsp-attribute name="reloadInterval" value="5"/>

   <reload-interval value="5"/>
   <auto-encode-requests value="false"/>
   <auto-encode-responses value="false"/>
   <enable-directory-browsing value="false"/>
   <enable-file-serving value="false"/>
   <pre-compile-jsps value="false"/>
   <enable-reloading value="true"/>
   <enable-serving-servlets-by-class-name value="false" />	
</web-ext>

Si le paramètre disableJspRuntimeCompilation a pour valeur true, le moteur JSP ne convertit ni ne compile les fichiers JSP lors de l'exécution ; il charge uniquement les fichiers classe précompilés. Il n'est pas nécessaire que les fichiers source JSP existent pour le chargement des fichiers classe. Si cette option a pour valeur true, vous pouvez installer une application qui ne possède pas de source JSP ; elle doit toutefois avoir des fichiers classe précompilés. Une propriété personnalisée de conteneur Web du même nom permet de déterminer le comportement de tous les modules Web installés sur un serveur. Si la propriété personnalisée de conteneur Web et l'option du moteur JSP sont toutes les deux définies, l'option du moteur JSP est prioritaire. Si le paramètre disableJspRuntimeCompilation a pour valeur true, le paramètre reloadEnabled prend automatiquement la valeur false.

Séquence de traitement du rechargement

La séquence de traitement liée au rechargement d'un fichier JSP lorsque le paramètre trackDependencies a pour valeur false est illustrée par la figure 1.

Figure 1. Séquence de traitement du rechargement lorsque le paramètre trackDependencies a pour valeur false.Important

Lorsque le paramètre trackDependencies a pour valeur true, le moteur JSP procède à des traitements supplémentaires du système de fichiers pour déterminer si l'une des dépendances d'un fichier JSP a changé depuis la dernière conversion et la dernière compilation du fichier JSP. La figure 2 montre les traitements supplémentaires effectués sur le chemin 'No' de l'organigramme intitulé "Le fichier de classe JPS a-t-il été mis à jour ?". Vous constaterez que le chemin emprunté lorsque le paramètre disableJspRuntimeCompilation a pour valeur true est le plus efficace.

Figure 2. Traitement de rechargement supplémentaire effectué lorsque le paramètre trackDependencies a pour valeur true.Important

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=rweb_jspreloading
Nom du fichier : rweb_jspreloading.html