java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
Nous sommes trois personnes à l'élaboration d'un projet d'ACI et nous n'avons pas été en JSF avant. Curieusement, avec les mêmes données vérifiée à partir de SVN, l'un des membres de l'équipe obtient une erreur 404 à chaque fois à l'aide de Tomcat 7.0.27.
Au moment de Tomcat (utilisé à l'intérieur d'Eclipse) démarre, le journal est écrit:
01.06.2012 11:45:16 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: ......
01.06.2012 11:45:16 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:SnapManCloud' did not find a matching property.
01.06.2012 11:45:16 org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
01.06.2012 11:45:16 org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
01.06.2012 11:45:16 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 677 ms
01.06.2012 11:45:16 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
01.06.2012 11:45:16 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12
01.06.2012 11:45:17 org.apache.catalina.core.StandardContext listenerStart
FATAL: Error configuring application listener of class com.sun.faces.config.ConfigureListener
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4638)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5204)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5199)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
01.06.2012 11:45:17 org.apache.catalina.core.StandardContext listenerStart
FATAL: Skipped installing application listeners due to previous error(s)
01.06.2012 11:45:17 org.apache.catalina.core.StandardContext startInternal
FATAL: Error listenerStart
01.06.2012 11:45:17 org.apache.catalina.core.StandardContext startInternal
FATAL: Context [/SnapManCloud] startup failed due to previous errors
01.06.2012 11:45:17 org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
01.06.2012 11:45:17 org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
01.06.2012 11:45:17 org.apache.catalina.startup.Catalina start
INFO: Server startup in 1279 ms
Nous utilisons Mojarra 2.0.3 comme JSF-mise en Œuvre qui a été inclus par Eclipse dans le projet (et sans doute dans le classpath).
En effet, il existe une entrée pour com.sun.faces.config.ConfigureListener
dans web.xml
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
Quelqu'un a une point de départ où chercher l'erreur? Aussi, si des renseignements supplémentaires sont requis, s'il vous plaît laissez-moi savoir.
source d'informationauteur Wolfgang Gaar
Vous devez vous connecter pour publier un commentaire.
JSF est généralement fourni à part entière, serveurs d'applications Java EE comme GlassFish, JBoss as/EAP, WildFly, WebSphere, WebLogic, etc. Cependant, Tomcat est un barebones JSP/Servlet container qui bundles seulement les JSP et Servlet Api, pas de JSF API.
Si vous souhaitez utiliser JSF sur Tomcat, puis vous auriez besoin de regroupement de la JSF bibliothèques avec la webapp dans son
/WEB-INF/lib
dossier, ou à l'installation de JSF dans Tomcat en plaçant le JSF bibliothèques dans son/lib
dossier. Apparemment cette application est conçue pour les vrais serveurs d'applications Java EE, et donc ne pas être couvert dans le cadre du programme des bibliothèques dans/WEB-INF/lib
.Il y a deux JSF implémentations disponibles, Mojarra et MyFaces. Le
com.sun.faces
paquet indique Mojarra, donc la télécharger et le mettre dans webapp d'exécution du classpath (c'est à dire soit dans la webapp est/WEB-INF/lib
ou dans de Tomcat/lib
).Une autre cause possible est que vous avez déployé le projet à un serveur d'application Java EE qui utilise MyFaces au lieu de Mojarra, alors que le projet a apparemment été initialement développé pour les Mojarra. Que l'auditeur est à savoir Mojarra spécifiques. Dans de tels cas, vous feriez mieux de supprimer l'ensemble de la
<listener>
entrée deweb.xml
.Dans tous les cas, l'inscription explicite de la Mojarra est
ConfigureListener
dansweb.xml
est en fait seulement nécessaire pour la solution de contournement vieux buggy des serveurs tels que GlassFish v3 et de la Jetée qui ont échoué à trouver l'auditeur dans Mojarra est TLD fichier. Lorsqu'elle est déployée sur un serveur décent, l'ensemble de la<listener>
entrée est inutile.Voir aussi: