Débogage systématique du module

Utilisez un modèle permettant de déterminer un problème dans vos modules personnalisés. Ce modèle permet de réduire le temps nécessaire à la recherche et au débogage.

Procédure

  1. Utilisez la console dans le client. La plupart des navigateurs ont leurs propres outils de développement intégrés. S'il existe des erreurs côté client dans le code JavaScript, elles sont affichées dans la console de ces outils. Les ressources sont encore en cours d'agrégation de sorte qu'il peut être difficile d'identifier la ressource exacte qui entraîne l'erreur.
  2. Activez la fonction de traçage. Avec la fonction de trace, vous pouvez afficher les ressources spécifiques sont regroupées sur la page et vous pouvez visualiser l'emplacement d'où provient une erreur dans la console. Vous pouvez suivre le flux du code et les valeurs attendues dans le code.
  3. Examinez les journaux. Si l'erreur n'est pas visible dans la console client, l'examen des journaux système HCL est une autre solution pour pister un problème. Ces journaux contiennent les erreurs côté serveur et la trace qui est activée.
    1. Ouvrez les journaux HCL dans les emplacements suivants, wp_profile_root//logs/WebSphere_Portal/SystemOut.log et wp_profile_root/logs/WebSphere_Portal/SystemErr.log.
    2. Vous pouvez activer d'autres fonctions de trace via le portlet d'activation du traçage dans la section Administration d'HCL. Click the Administration menu icon. Then, click Portal Analysis > Enable Tracing.
    Pour plus d'informations, voir Journalisation et traçage.
  4. Ajoutez des journaux de consignation à vos ressources. Le code HCL est consigné dans le produit à des fins de maintenance. Toutefois, votre code personnalisé peut nécessiter une consignation supérieure que celle insérée pour pister un problème. Pour le code côté client, utilisez une instruction de journal de la console. Une instruction standard de journal de la console pour l'affichage d'une valeur avec un libellé est console.debug("example value: "+value);.
    L'utilisation de ce code affiche une valeur de chaîne. Pour afficher l'objet dans la console afin de voir les valeurs enregistrées dans l'objet vous pouvez utiliser
    console.log("the ibmCfg object:");
    console.debug(ibmCfg);

    La première ligne trace l'instance de l'objet. La seconde ligne ajoute l'objet à la console. Ensuite, vous pouvez utiliser la console pour voir les attributs et leurs valeurs.

  5. Vérifiez que les ressources sont chargées dans la page. Si une fonction de la page n'est pas visible ou ne semble pas fonctionner correctement, parfois les ressources ne sont pas sur la page. Pour vérifier, vous pouvez afficher les demandes de la page et afficher les différents JavaScript ou CSS. Vérifiez que les fichiers requis pour la fonction sont inclus dans la page. Si des ressources manquent, éditez le profil pour inclure les modules nécessaires.
  6. Faites des recherches avec l'Analyseur d'optimisation de thème. Le portlet d'analyseur d'optimisation de thème peut afficher plusieurs attributs du thème, des pages, des profils et des modules. Vous pouvez rechercher un module et examiner les détails de visibilité basés sur la classe d'appareil et les contributions de ressources. Chaque ressource est répertoriée avec son chemin dans le serveur. Vous pouvez donc utiliser ces informations pour déterminer si elles sont en cours de regroupement sur la page ou pour ajouter des informations de consignation.
  7. Exportez la définition XML pour les ressources. Une fois que vous avez essayé d'identifier le problème, la modification des attributs de ressource est la solution suivante. Les ressources qui requièrent une modification de leur définition XML sont le thème, la page, le client ou la classe d'appareil. Pour exporter la définition XML d'une ressource, vous pouvez utiliser XMLAccess. Voici un outil de ligne de commande se trouvant dans wp_profile_root/PortalServer/bin/xmlaccess.bat sous Windows et dans wp_profile_root/PortalServer/bin/xmlaccess.sh sous Linux. Vous pouvez utiliser les scripts suivants pour exporter une ressource spécifique liée à la structure du thème, mais d'autres exemples sont situés ici PortalServer_root/doc/xml-samples/.
  8. Exportez toutes les définitions des thèmes pour modifier les fonctions avancées, telles que les métadonnées, la racine de ressource, la mise en page par défaut ou la définition de modèle de thème. Vous pouvez également modifier d'autres attributs via cette définition.
    <?xml version="1.0" encoding="UTF-8"?>
    <request 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PortalConfig_7.0.0.xsd"
    type="export" create-oids="true">
    <portal action="locate">
    <theme action="export" active="true" objectid="*"></theme>
    </portal>
    </request>
  9. Exportez la définition de page pour modifier des fonctions spécifiques du thème telles que le remplacement du modèle de thème, les remplacements de zone de contenu dynamique ou le filtrage de classe d'appareil.
    <?xml version="1.0" encoding="UTF-8"?>
    <request 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PortalConfig_7.0.0.xsd"
    type="export" create-oids="true">
    <portal action="locate">
    <content-node action="export" uniquename="ibm.portal.SamplePage"/>
    </portal>
    </request>
  10. Exportez tous les clients définis pour modifier la classe d'appareil affectée. Vous pouvez aussi visualiser ces informations dans les portlets Gestion des clients.
    <?xml version="1.0" encoding="UTF-8"?>
    <request 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PortalConfig_7.0.0.xsd"
    type="export" create-oids="true">
    <portal action="locate">
    <client action="export" uniquename="*"></client>
    </portal>
    </request>
  11. Exportez toutes les classes d'appareil définies pour afficher les groupes disponibles et modifiez le titre ou l'ID.
    <?xml version="1.0" encoding="UTF-8"?>
    <request type="export" create-oids="true"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="PortalConfig_7.0.0_2.xsd">
    <portal action="locate">
    <device-class action="export" uniquename="*" />
    </portal>	
    </request>