J'ai rencontré des problèmes pour déployer mon projet que j'utilise jsf/spring/hibernate en tant que faramework, j'ai ajouté les binaires nécessaires spécialement org.springframework.web-3.1.0.CI-1162, l'erreur est la suivante:
SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
Java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
at Java.lang.Class.getDeclaredConstructors0(Native Method)
at Java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at Java.lang.Class.getConstructor0(Unknown Source)
at Java.lang.Class.newInstance0(Unknown Source)
at Java.lang.Class.newInstance(Unknown Source)
at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4150)
at org.Apache.catalina.core.StandardContext.start(StandardContext.Java:4705)
at org.Apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.Java:799)
at org.Apache.catalina.core.ContainerBase.addChild(ContainerBase.Java:779)
at org.Apache.catalina.core.StandardHost.addChild(StandardHost.Java:601)
at org.Apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.Java:675)
at org.Apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.Java:601)
at org.Apache.catalina.startup.HostConfig.deployApps(HostConfig.Java:502)
at org.Apache.catalina.startup.HostConfig.start(HostConfig.Java:1317)
at org.Apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.Java:324)
at org.Apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.Java:142)
at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1065)
at org.Apache.catalina.core.StandardHost.start(StandardHost.Java:840)
at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1057)
at org.Apache.catalina.core.StandardEngine.start(StandardEngine.Java:463)
at org.Apache.catalina.core.StandardService.start(StandardService.Java:525)
at org.Apache.catalina.core.StandardServer.start(StandardServer.Java:754)
at org.Apache.catalina.startup.Catalina.start(Catalina.Java:595)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at Java.lang.reflect.Method.invoke(Unknown Source)
at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:289)
at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:414)
et la liste des pots ajouté:
antlr-2.7.6.jar
commons-dbcb-1.4.jar
commons-collections-3.1.jar
commons-pool.1.6.jar
commons-logging-1.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
iText-5.0.4.jar (pour les primefaces)
javassist-3.9.0.GA.jar
com.springsource.org.jboss-el-2.0.0.GA.jar (facultatif pour l'exécution sur Tomcat 6)
jsf-api.jar (Mojarra 2.0.4)
jsf-impl.jar (Mojarra 2.04)
jta-1.1.jar
log4j-1.2.11.jar
mysql-connector-Java-5.0.5.jar (pour MySQL)
org.springframework.aop-3.1.0.CI-1162.jar
org.springframework.asm-3.1.0.CI-1162.jar
org.springframework.aspects-3.1.0.CI-1162.jar
org.springframework.beans-3.1.0.CI-1162.jar
org.springframework.context-3.1.0.CI-1162.jar
org.springframework.context.support-3.1.0.CI-1162.jar
org.springframework.core-3.1.0.CI-1162.jar
org.springframework.expression-3.1.0.CI-1162.jar
org.springframework.jdbc-3.1.0.CI-1162.jar
org.springframework.orm-3.1.0.CI-1162.jar
org.springframework.oxm-3.1.0.M1.jar
org.springframework.transaction-3.1.0.CI-1162.jar
org.springframework.web-3.1.0.CI-1162.jar
org.springframework.web.portlet-3.1.0.M1.jar
org.springframework.web.servlet-3.1.0.CI-1162.jar
poi-3.2-FINAL-20081019.jar (pour les primefaces)
primefaces-3.5jar
slf4j-api-1.6.1.jar
slf4j-jdk14-1.6.1.jar
qlfj4-log4j12-1.6.4.jar
Pour cette erreur, il peut y avoir différentes solutions. J'ai noté celles qui avaient fonctionné pour moi.
Solution 1. Cela se produit toujours dans les environnements de déploiement et de débogage. Dans un environnement de déploiement, assurez-vous simplement que votre chemin d'accès aux classes du serveur a inclus la bibliothèque Spring jar (par exemple, spring-4.0.4.jar).
Dans un environnement de débogage, les étapes peuvent différer d'un IDE différent, mais la solution est la même. Dans Eclipse, les développeurs créent généralement un Tomcat, un jboss… quel que soit le serveur d'application utilisé pour le débogage, assurez-vous simplement que les fichiers jar Spring appropriés sont inclus.
.
Solution 2. Si vous utilisez Maven en tant qu'outil de construction et que vous téléchargez des dépendances à l'aide de celui-ci, il peut y avoir un conflit de fichiers jar. Parce que les serveurs Tomcat fournissent normalement des fichiers jar tels que servlet-api et jpa-api. Donc, si vous les incluez à nouveau avec maven; il y aura des problèmes pour les identifier.
Solution 3. / Si vous utilisez Eclipse en tant que IDE et en utilisant Maven en tant qu'outil de construction et Tomcat en tant que serveur; Rappelez-vous que le serveur Tomcat ne regardera pas les pots qui se trouvent juste à l'intérieur des dossiers. Pour cela il y a un petit truc,
J'espère qu'une de ces solutions vous aidera à résoudre votre problème. Happy Coding et assurez-vous qu'il utilise Java.
Dans ma situation, j’utilise maven pour construire le projet, car le fichier war n’est pas créé correctement, cela entraîne cette exception. Je vérifie le fichier war et relance l’installation, ce qui résout mon problème.
Je vous suggère de remplacer tous les pots Spring par la version la plus récente (3.2.2.LELEASE)
J'utilise Eclipse et constate qu'il n'y a pas de dépendances maven configurées sur Deployment Assembly , j'ai donc modifié .classpath depuis
<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
à
<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.Eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
Assurez-vous que votre chemin d'accès aux classes du serveur a inclus la bibliothèque de jar Spring. Regardez ce lien .
Vous devez télécharger le fichier JAR nécessaire. Vous pouvez télécharger le fichier spring-context.jar à partir du lien suivant
http://mvnrepository.com/artifact/org.springframework/spring-context/3.2.2.RELEASE