The requested resource (/foo/*) is not available

La définition du context esup-lecture doit être fait dans le server.xml de tomcat et pas dans un fichier tomcat/conf/Catalina/localhost/LecturePortlet.xml

ClassCastException

Si vous obtener ce message en mode portlet : java.lang.ClassCastException: org.esupportail.lecture.portlet.FacesPortlet cannot be cast to javax.portlet.Portlet

C'est vraisemblablement parce que vous avez fait un déploiement en mode servlet avant sans avoir fait un clean avant de redéployer en mode portlet.

Pour résoudre ce problème très rapidement il suffit de :

Comprendre le fonctionnement du fichier mapping.xml

Le but du fichier mapping.xml est double :

  1. Permettre de sélectionner une feuille de transformation XSL en fonction de la source à afficher
  2. Permettre de sélectionner dans la source l'élément répétable (annonce ou item pour utiliser un terme plus générique) sur lequel sera appliqué la feuille de transformation XSL précédemment citée

Sélection de la feuille de transformation XSL

Pour chaque entrée de <mapping> du fichier mapping.xml on va trouver un attribut qui va nous permettre de sélectionner une feuille de transformation XSL. Ce sera sourceURL, DTD, xmlType, xmlns ou rootElement (dans cet ordre de priorité).

Signification

ourceURL --> Si la source correspond à cette url ou dont l'url commence par cette valeur alors c'est ce mapping qui est pris en compte
dtd --> Si la source a une dtd et que cette dtd correspond à cet attribut dtd alors c'est ce mapping qui est pris en compte
xmlType --> Si la source a un xsd et que ce xsd correspond à cet attribut xmlType alors c'est ce mapping qui est pris en compte
xmlns --> Si l'élément root du XML de ta source est dans un espace de nom qui correspond à cet attribut xmlns alors c'est ce mapping qui est pris en compte
rootElement --> Si l'élément root du XML de ta source correspond à cet attribut rootElement alors c'est ce mapping qui est pris en compte

Sélectionner dans la source de l'élément répétable

Dans une source de données on a plusieurs items que l'on veut faire apparaitre de façon distincte dans esup-lecture.

Pour cela on dispose de l'attribut itemXPath. Il sert comme XPath pour définir quels éléments répétables dans le XML de la source vont former les Items à afficher.

Mais cette information ne suffit pas si la source contient des espaces de noms différents pour les différentes balises XML la constituant. Ces espace de noms, s'il sont utilisés dans itemXPath, doivent être définis dans une ou n balise <XPathNameSpace>.

itemXPath="/rdf:RDF/default:item"

Dans ce cas il faut préciser à quoi correspondent les espaces de noms rdf: et default: pour que le moteur XPath fonctionne sur le XML de ta source :

<XPathNameSpace prefix="rdf" uri="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>

<XPathNameSpace prefix="default" uri="http://purl.org/rss/1.0/" />