JSF 2.0 Tomcat: Il semble que la version JSP du conteneur soit antérieure à 2.1 …​

JSF 2.0 + Tomcat: Il semble que la version JSP du conteneur soit antérieure à 2.1…

Problème

Lors du déploiement de l'application Web JSF 2.0 sur Tomcat 6.0.26, rencontre l'exception «JSP version of the container is older than 2.1» et n'a pas pu démarrer le serveur Tomcat. Mais leJSP api v2.1 est inclus dans le chemin de classe du projet, pourquoi Tomcat dit toujours que la version JSP est antérieure à 2.1?

    
     javax.servlet.jsp
     jsp-api
     2.1
    

Voici les piles d'erreur…

SEVERE: Critical error during deployment:
   ...
Caused by: com.sun.faces.config.ConfigurationException:
It appears the JSP version of the container is older than 2.1 and unable to
locate the EL RI expression factory, com.sun.el.ExpressionFactoryImpl.

If not using JSP or the EL RI, make sure the context initialization parameter,
com.sun.faces.expressionFactory, is properly set.

Solution

Je ne sais pas vraiment quelle en est la cause, mais la solution est d’inclure la bibliothèqueel-ri.jar

  
     com.sun.el
     el-ri
     1.0
  

P.S This el-ri.jar is available at the default Maven central repository.

Note
LesJSF 2.0 released note n'ont pas mentionné la bibliothèque de dépendances deel-ri.jar, c'est bizarre.

Mise à jour - 21-10-2010

Ce "el-ri.jar" est trop ancien, il est recommandé d'utiliser le dernier "el-impl-2.2.jar", deJava.net

     
      org.glassfish.web
      el-impl
      2.2