2016-03-25 9 views
0

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/jdbc/core/JdbcTemplate at com.citi.cate.svn.eers.SVNEERSFeeder.loadEmpInfoFromDB(SVNEERSFeeder.java:117) at com.citi.cate.svn.eers.SVNEERSFeeder.process(SVNEERSFeeder.java:523) at com.citi.cate.svn.eers.SVNEERSFeeder.main(SVNEERSFeeder.java:631) at resources.TheApp.main(TheApp.java:39) Caused by: java.lang.ClassNotFoundException: org.springframework.jdbc.core.JdbcTemplate at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 4 moreUngeklärte NoClassDefFoundError-Ausnahme

Ich kann die Lösung für den obigen Fehler nicht finden. In letzter Zeit gab es Änderungen in der Spring-Framework-Version und ich habe alle Gläser geändert, die mit der neuen Version des Spring-Frameworks zusammenhängen. Ich sehe den obigen Fehler. versucht, alle Gläser neu zu laden.still der Fehler existiert. Bitte hilf mir dabei.

SVNEERSFeeder.java 

line 117: JdbcTemplate jt = new JdbcTemplate(_utility.getDBConnection("csi", "")) 
+0

Woher kommt der Code, der den Stack-Trace erzeugt? – TheMirrox

Antwort

0

NoClassDefFoundError Exception

Diese Ausnahme, wenn die Java Virtual Machine oder eine Classloader-Instanz ausgelöst wird versucht, in der Definition einer Klasse (als Teil eines normalen Methodenaufruf oder als Teil der Erstellung zu laden eine neue Instanz, die den neuen Ausdruck verwendet) und keine Definition der Klasse gefunden werden konnte. Dies wird verursacht, wenn eine Klassendatei vorhanden ist, von der Ihr Code abhängt. Sie ist zur Kompilierzeit vorhanden, wird aber zur Laufzeit nicht gefunden.

Suchen Sie nach Unterschieden in den Klassen für Build-Zeit und Laufzeitklassen. obwohl

In Ihrem Fall scheint es, dass die Ursache ist:

resources.TheApp.main (TheApp.java:39) Verursacht durch: java.lang.ClassNotFoundException: org.springframework.jdbc.core .JdbcTemplate bei

ClassNotFoundException

Es verursacht werden können, wenn Sie versuchen, eine reflektierende Aufruf Klassen zur Laufzeit zu machen, aber die Klassen das Programm versucht nicht zu nennen nicht existieren.

+0

danke für den Vorschlag. Ich versuche das zu untersuchen. –

+0

können Sie mir bitte sagen, was der beste Weg ist, um die Unterschiede in Compile Time und Runtime Classpaths herauszufinden. –

+0

http://stackoverflow.com/a/4272424/6108910 – Suparna

2

Die Ausnahme wird verursacht durch Fehlkonfiguration der entsprechenden Feder jdbc Gläser im Zusammenhang mit der Feder-Version. So beheben Sie Abhängigkeiten leicht, könnten Sie Maven verwenden: Zum Beispiel, wenn Sie mit Feder 4.2.5, fügen s pring jdbc Abhängigkeiten in Maven wie folgt:

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-jdbc</artifactId> 
    <version>4.2.5.RELEASE</version> 
</dependency> 

Apache Ivy Abhängigkeiten:

<dependency org="org.springframework" name="spring-jdbc" rev="4.2.5.RELEASE"/> 
+0

Vielen Dank für den Vorschlag. kannst du mir auch mitteilen, was die Lösung ist, falls ich ANT verwende? –

+0

Also, verwenden Sie Apache Ivy für das Abhängigkeitsmanagement mit Apache Ant? – CrawlingKid