Portlets Struts - Notes sur l'édition

© Copyright International Business Machines Corporation 2006. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM® Corp.

Notes sur l'édition

1.0 Limitations
   1.1 Les balises Struts template ne sont pas bien gérées par les outils de portlet Struts
   1.2 Le développement de portlets Struts avec des composants Tiles n'est pas pris en charge par les outils de portlet Struts
2.0 Problèmes connus et leurs solutions
   2.1 Les exemples de portlets Struts importés peuvent générer une erreur signalant que l'environnement d'exécution cible n'est pas défini
   2.2 La prise en charge du modèle de page dynamique ne fonctionne pas avec les projets de portlet Struts à composants Tiles

1.0 Limitations

1.1 Les balises Struts template ne sont pas bien gérées par les outils de portlet Struts

Si vous développez un projet de portlet Struts, sachez que les balises Struts template ne sont pas correctement gérées par les outils de portlet Struts.

  1. Lorsque vous ajoutez des balises Struts template à votre page Web à partir de la palette, l'outil génère une directive taglib dans laquelle l'URI de la bibliothèque de balises est incorrect :
    <%@taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template"%>
    La directive taglib correcte est la suivante :

    <%@taglib uri="http://struts.apache.org/tags-template" prefix="template"%>

    Corrigez la directive taglib de la page concernée ne résout pas le problème, car si vous ajoutez d'autres balises template, l'outil continuera à générer des directives taglib erronées.
  2. Les balises Struts template ne sont pas reproduites dans Page Designer. 

1.2 Le développement de portlets Struts avec des composants Tiles n'est pas pris en charge par les outils de portlet Struts

Les outils de portlet Struts ne permettent pas actuellement de développer des portlets Struts à base de composants Tiles, mais la galerie d'exemples contient des exemples de tels portlets (IBM et JSR 168) que vous pouvez importer dans votre espace de travail pour vous aider à configurer votre portlet en vue d'utiliser des composants Tiles dans une application de portlet.

Remarque : Le développement de 'tiles' dans un projet de portlet Struts peut déclencher l'ajout de la facette de projet Prise en charge du modèle de page dynamique (Struts Tiles). Cela entraînera des problèmes au déploiement de votre portlet. Pour plus de détails, consultez la section 'Problèmes connus et leurs solutions'.

2.0 Problèmes connus et leurs solutions

2.1 Les exemples de portlets Struts importés peuvent générer une erreur signalant que l'environnement d'exécution cible n'est pas défini

Lorsque vous importez un exemple de portlet Struts (IBM ou JSR 168) dans votre espace de travail, il est possible qu'il provoque une erreur signalant que l'environnement d'exécution cible du projet n'est pas défini. Selon la configuration du plan de travail et la nature des serveurs installés sur votre machine, vous pouvez recevoir le message d'erreur suivant : "L'environnement d'exécution cible WebSphere Portal V6.0 n'est pas défini". Cela signifie que WebSphere Portal V6.0 n'est pas dans la liste des serveurs du plan de travail.

Solution :
Avant de manipuler l'exemple, vous devez définir l'environnement d'exécution serveur cible du projet :

  1. Assurez-vous qu'un serveur cible approprié est disponible.
    • Vous pouvez consulter et modifier la liste des serveurs disponibles dans les préférences (Fenêtre > PréférencesServeur > Environnements d'exécution installés).
    • Recherchez le serveur "WebSphere Portal V6.0 stub" (le mot 'stub' peut être remplacé par 'raccord' dans la version française du produit). Il doit avoir été installé avec la fonction Outils de portail du produit. S'il ne figure pas dans la liste, cliquez sur le bouton Ajouter pour ajouter un environnement d'exécution WebSphere Portal V6.0.
  2. Sélectionnez le projet importé et choisissez Propriétés dans son menu contextuel.
  3. Sélectionnez un environnement d'exécution cible. Normalement, il doit y avoir une liste d'environnements d'exécution cible convenant à votre projet.
  4. Cliquez sur OK.  
  5. Répétez ces étapes pour le projet EAR importé avec l'exemple.

 

Après avoir défini l'environnement d'exécution cible, regénérez le projet afin d'y supprimer les erreurs, puis déployez-le :
  1. Pour regénérer le projet, sélectionnez Projet > Nettoyer sur la barre de menus et, dans la boîte de dialogue correspondante, choisissez Nettoyer tous les projets ou Nettoyer les projets sélectionnés ci-dessous, puis cliquez sur OK. Remarque : Certains exemples contiennent des erreurs.
  2. Pour déployer un exemple qui contient des erreurs, vous devez sélectionner Fenêtre > Préférences > Serveur > WebSphere et cocher la case Permettre la publication sur un serveur des applications contenant des erreurs.  
  3. Cliquez sur OK.
  4. Pour déployer le projet, sélectionnez-le (le projet de développement lui-même, et non le projet EAR), cliquez avec le bouton droit et sélectionnez Exécuter en tant que > Exécuter sur le serveur. Assurez-vous que le même type de serveur est sélectionné pour votre environnement d'exécution cible.


2.2 La prise en charge du modèle de page dynamique ne fonctionne pas avec les projets de portlet Struts à composants Tiles

Lorsque vous travaillez sur un portlet Struts avec des composants Tiles, il est possible que vous déclenchiez l'installation de la facette de projet Prise en charge du modèle de page dynamique (Struts Tiles). L'ajout de cette facette est un moyen simple de travailler sur des composants Struts Tiles dans un projet Web dynamique, mais elle ne convient pas à un projet de portlet Struts. Si elle est installée, elle entraînera des erreurs d'exécution au déploiement. En outre, si vous utilisez la palette pour ajouter des balises tiles aux pages JSP de votre portlet Struts, les directives taglib ajoutées au début de ces pages seront erronées.

Solutions : Si vous développez un portlet Struts avec des composants Tiles, avant de le déployez, vous devez effectuer les étapes suivantes :

  1. Déterminez si la facette de projet Prise en charge du modèle de page dynamique (Struts Tiles) a été installée. Pour cela, ouvrez la fenêtre de propriétés du projet et sélectionnez Valeurs de projet (facettes de projet).
  2. Si la facette a été installée, supprimez les entrées qui ont été ajoutées au descripteur de déploiement et au fichier de configuration du projet :
    • Ouvrez le fichier web.xml dans l'éditeur de descripteur de déploiement. Sous l'onglet Servlets, supprimez l'entrée TilesServlet et enregistrez le fichier.
    • Ouvrez le fichier struts-config.xml dans l'éditeur de fichier de configuration Struts. Sous l'onglet Plug-ins, supprimez l'entrée org.apache.struts.tiles.TilesPlugin et enregistrez le fichier.
      Remarque : Le fait de supprimer la facette de projet Prise en charge du modèle de page dynamique (Struts Tiles) sur la page de propriétés Valeurs de projet ne supprime pas les entrées ci-dessus. Mieux vaut laisser cette facette dans la liste et supprimer les entrées manuellement dans les fichiers .xml.
  3. Pour chaque page JSP contenant des balises tiles, vérifiez que la directive taglib tiles correcte est utilisée. Dans le cas contraire (valable pour les portlets Struts Tiles destinés à WPS V6.0) :
    • remplacez : <%@taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles"%>
    • par : <%@taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>