25 novembre 2013

The JSP specification requires that an attribute name is preceded by whitespace

Avec la 7.30.40 un problème d'affichage de "Mes demandes" du Self Service a été identifié sur les serveurs Tomcat 7. Aucune demande et notification ne s'affiche et une erreur apparait dans la log :

org.apache.jasper.JasperException: /WEB-INF/view/followup.jsp (line: 248, column: 126) The JSP specification requires that an attribute name is preceded by whitespace at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler
.java:42)


Pour le corriger il faut:
  • Ajouter la ligne suivante dans le fichier tomcat/conf/catalina.properties :
org.apache.jasper.compiler.Parser.STRICT_WHITESPACE=false
  • Redémarrer le serveur web.

22 novembre 2013

Firefox 17 ESR - fichier PDF vide ou fenêtre blanche qui s'ouvre et se ferme en boucle

Firefox 17 ESR intègre un lecteur de PDF interne. Pour faire fonctionner les fusions bureautiques correctement, il faut désactiver ce lecteur PDF interne et réactiver le plug-in acobat.

Pour cela :
  • Dans Firefox allez dans le menu outils/options/application
  • Pour les lignes "Adobe..." choisir "Use adobe acrobat in firefox".
  • Dans Adobe : dans le menu editions/preferences/internet/options du navigateur web, 
  • cocher l'option: Afficher les pdf dans le navigateur

8 novembre 2013

Allocation mémoire des applications Java

Ci dessous un résumé de ce que j'ai glané sur les mécanismes d'allocation mémoire des applications Java. Une des difficulté est d'intégrer les variations du vocabulaire. Ce n'est pas la seule ...

Le Heap

C'est le "tas" de mémoire alloué à chaque processus Java (Dans le cas de HR Access on trouvera un processus Java pour OpenHR, un pour HRQuery, un pour Tomcat). La taille maximale allouable est fonction du système (Sun, Red Hat, Windows ... / 32, 64 bits). Des paramètres de la ligne de commande permettent notamment de préciser pour chaque instance Java une taille de Heap au démarrage et un maximum à ne pas dépasser.

Le Heap est segmenté en plusieurs zones, dites "Générations". Ceci permet de gérer les objets éphémères (iterateurs, variables locales) et de pérenniser des objets persistants :
 
- Zone dite "New" ou "Young Generation" ou "nursery", sous divisée en :
  • Eden (le paradis, là ou sont placés les objets nouvellement créés)
  • Survivor 1 & 2 (les objets survivant aux premiers passages du Garbage Collector - cf plus bas)
  • Virtually reserved (espace libre)
- Zone dite "Old Generation" ou "Tenured", sous divisée en :
  • Tenured (les objets "titularisés")
  • Virtually reserved (espace libre)
Pour être complet, s'ajoute au Heap une zone mémoire dite "Permanent Génération" pour les données de la machine virtuelle elle-même (classes et méthodes). 

http://www.jmdoudoux.fr/java/dej/chap-gestion_memoire.htm
 


Le Garbage Collector

Ou "ramasse miette". C'est le mécanisme de récupération de mémoire. Les "Garbage Collections" (déclenchements du Garbage Collector) partielles ("partial" ou "minor") ne traitent que la zone "New Generation". Les "GC" complètes ("full") traitent toutes les zones dès que la "Old" ou la "Permanent" sont remplies.

Par défaut, la machine virtuelle Java augmente ou diminue le "Heap" à chaque "GC" pour essayer de garder dans chaque zone la proportion prévue d'espace libre.



Le passage trop fréquent des "GC" (sous-dimensionnement mémoire ou mauvaise répartition) peu coûter cher en terme de performances.

7 novembre 2013

Masquer l'url "Comment faire" du Self-service

Depuis HRv7 le Self Service présente en standard des liens d'aide "Comment faire".
Ici sur une Suite 9 avec un client de version 7.30.30, 



En l'absence de fichiers d'aide en ligne, le lien serait à masquer ...

Une méthode "basique" 

elle consiste à :
  • Supprimer le libellé "Comment faire ?" dans le fichier des libellés de hra-space.
  • Remplacer l’icône par une icône vide dans la charte graphique 

4 novembre 2013

Modifier l'aide en ligne de HRaSpace

Les éléments suivants ont été vus sur une version cliente 7.30.30.

Cas général


L'url du lien d'accès à l'aide en ligne est évaluée par HRaSpace
  • l'aide en ligne est stockée dans  l'arborescence .../webapps/hra-space/help
  • elle fait référence à l'action fonctionnelle du GP 
par exemple : http://1.2.3.4:5678/hra-space/help/HRASTD/F/FR/SSEMP/CNT_FA_PADADDG0.htm.

La règle d'évaluation est placée dans help.properties. On verra par exemple pour le self service la règle suivante :

gp=HRASTD/${userLanguage}/${navigationLocalization}/${roleCategory}/CNT_FA_${functionalActionName}.htm

On trouve aussi dans hra-space/help un fichier "Customizing HRa Space Help.pdf" qui explique que l'aide en ligne se modifie "à la main". Information reprise dans le compagnon au chapitre "Comment personnaliser l'aide en ligne HRa Space ?"... :
          You can modify the contents by simply modifying the html files, preferably with a dedicated editor.
          Vous pouvez modifier le contenu de l'aide en intervenant directement sur les fichiers html, de préférence avec un éditeur dédié.

C'est donc avec l'éditeur du système - ou avec un éditeur HTML du commerce que doivent être modifiées ou créées les pages d'aide. Placez les dans l'arborescence .../webapps/hra-space/help en respectant la règle d'évaluation des chemins.

Cas de "qu'est un identifiant ?"

 

Editez le fichier .../webapps/hra-space/help/HRADRJ/F/COSPALogging.htm et adaptez le texte par défaut (dans certaines versions le /HRADJR est à replacer par /HRASTD) :

<P id=contenttext>Your Login is the user name defined according to your company policy. It can be built with your name, or your corporate identification.</P>

et celui conditionné par la langue :

sBody="Votre identifiant correspond au nom d'utilisateur qui vous est attribué, selon les règles en vigueur dans votre société."

Rappel pour HR Rich Client

L'aide en ligne du client riche est construite à partir des objets "Documentation" de HRStudio.