2013-04-13 6 views
7

Ho riscontrato problemi per l'implementazione del mio progetto che utilizzo jsf/spring/hibernate come un miracolo, ho aggiunto i jar necessari specialmente org.springframework.web-3.1 .0.CI-1162, l'errore è:java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext

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) 

e l'elenco dei vasi aggiunto:

antlr-2.7.6.jar

commons-dbcb-1.4.jar

Commons-collezioni-3.1.jar

commons-pool.1.6.jar

commons-logging-1.1.jar

dom4j-1.6.1.jar

hibernate3.jar

hibernate-APP-2.0-api-1.0.1.Final.jar

iText-5.0.4.jar (Per primefaces)

javassist-3.9.0.GA.jar

com.springsource.org.jboss-el-2.0.0.GA.jar (opzionale per l'esecuzione su 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 (per 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-FINALE-20081019.jar (Per primefaces)

primefaces-3.5jar

slf4j-api-1.6.1.jar

0.123.516,410617 millions 451.515.053.691,36321 milioni

slf4j-jdk14-1.6.1.jar

qlfj4-log4j12-1.6.4.jar

+2

Come stai costruendo il file di guerra? (Maven? Ant? Eclipse?) – artbristol

+0

Se hai trovato la risposta corretta qui, contrassegnala come corretta in modo che possa aiutare i futuri visitatori con problemi simili. Grazie – KingFeming

risposta

0

È necessario scaricare il file jar necessari. È possibile scaricare il file primavera-context.jar dal seguente link

http://mvnrepository.com/artifact/org.springframework/spring-context/3.2.2.RELEASE

+0

'spring-context' è già nella lista (' org.springframework.context-3.1.0.CI-1162.jar') – artbristol

+0

Non puoi sapere senza provare questo file jar. Inoltre ho aggiornato la mia risposta – olyanren

+0

Come potete vedere la classe ApplicationContext in questo file jar. – olyanren

0

vi consiglio di sostituire tutte le giare di primavera con il più fino alla versione data (3.2.2.RELEASE)

+0

che ho provato prima con un'altra versione di primavera ma è lo stesso problema !! – hela

+0

L'aggiornamento della versione dei vasi a molla è ciò che ha CAUSATO questo problema per me. – Marvo

22

Per questo errore, ci possono essere diverse soluzioni. Ho annotato quelli che avevano funzionato per me.

Soluzione 1. Ciò è sempre avvenuto nell'ambiente di distribuzione e debug. Nell'ambiente di distribuzione, assicurarsi che il classpath del server abbia incluso la libreria jar Spring (ad esempio spring-4.0.4.jar).

In ambiente di debug, i passaggi possono variare da IDE diversi, ma la soluzione è la stessa. In Eclipse, gli sviluppatori di solito creano un tomcat, jboss ... qualunque sia il server delle applicazioni per il debug, basta assicurarsi che siano inclusi i jar Spring corretti.

  1. Fare doppio clic sul server di debug
  2. Clicca su “configurazione di lancio Open” per accedere al ambiente server
  3. Fare clic sulla scheda classpath
  4. Includere il file jar sorgente qui, può anche richiesto barattolo di log comune a causa della dipendenza Spring.
  5. Fine, eseguire di nuovo l'applicazione.

.

Soluzione 2. Se si utilizza Maven come strumento di compilazione e si scaricano dipendenze utilizzando questo, è possibile che si verifichino conflitti tra i contenitori. Poiché i server Tomcat normalmente forniscono alcuni jar come servlet-api e jpa-api. Quindi se li includi di nuovo usando Maven; ci saranno problemi nell'identificarli.

Soluzione 3. Se si utilizza Eclipse come IDE e si utilizza Maven come strumento di compilazione e tomcat come server; ricorda che il server Tomcat non guarderà i vasi che si trovano appena all'interno delle cartelle.Per questo c'è un piccolo trucco,

  1. Fare clic destro sul vostro progetto e selezionare proprietà
  2. Dalla finestra visualizzata, selezionare Assemblea Deployment
  3. Select Aggiungi
  4. Aggiungi Maven dipendenze
  5. Clicca Applicare e fare clic su OK

Speranza una di queste soluzioni vi aiutano a risolvere il problema. Happy Coding e assicurati che stia usando Java.

+1

Soluzione 3 ha funzionato per me. Grazie. – Ammad

1

Nella mia situazione, utilizzo Maven per creare il progetto, solo perché il file war non è stato creato correttamente, porterà a questa eccezione. Controllo il file di guerra ed eseguo di nuovo l'installazione, che risolve il mio problema.