Wenn ich mein Projekt ausführe, erhalte ich zahlreiche Ausgaben dieses Fehlers:
9. September 2009 08:22:23 org.apache.catalina.core.StandardWrapperValve wird aufgerufen SEVERE: Servlet.service () für Servlet Jersey hat eine Ausnahme ausgelöst java.lang.NoClassDefFoundError: Klasse SpringFactory konnte nicht initialisiert werden at com.point2.prospect.persistence.hibernate.HibernateTransactionInterceptor.doFilter (HibernateTrans actionInterceptor.java:17) unter org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:235) unter org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) at com.point2.prospect.restapi.ServerErrorInterceptor.doFilter (ServerErrorInterceptor.java:27) unter org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:235) unter org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) unter org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) unter org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) unter org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:583) unter org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:447) bei java.lang.Thread.run (Thread.java:619)
Ich stelle fest, dass dieses Problem im gesamten Web gefragt wird, aber keine wirklichen Antworten enthält. Was ist eine allgemeine Ursache für diese Art von Fehler?
Ihnen fehlt die erforderliche Klassendefinition. Wird normalerweise dadurch verursacht, dass sich die erforderliche JAR nicht im Klassenpfad befindet.
Von der J2SE-API :
quelle
Ich hatte das gleiche Problem, weil die JAR-Bibliothek von einem anderen Linux-Benutzer (root) kopiert wurde und der angemeldete Benutzer (Prozess) nicht über ausreichende Berechtigungen zum Lesen des JAR-Dateiinhalts verfügte.
quelle
Ich hatte das:
class Util { static boolean isNeverAsync = System.getenv().get("asyncc_exclude_redundancy").equals("yes"); }
Sie können das Problem wahrscheinlich sehen, die env var gibt möglicherweise null anstelle von string zurück. Um meine Theorie zu testen, habe ich sie geändert in:
class Util { static boolean isNeverAsync = false; }
und das Problem ging weg. Schade, dass Java Ihnen nicht die genaue Stapelspur des Fehlers geben kann, irgendwie komisch.
quelle
Ich bin kürzlich unter Windows 10 auf diesen Fehler gestoßen. Es stellte sich heraus, dass Windows nach DLL-Dateien suchte, die für mein Projekt erforderlich waren, und sie nicht finden konnte, da sie im Systempfad PATH und nicht im CLASSPATH oder -Djava gesucht wurden .library.path
quelle
Als ich diesen Fehler sah, wurde mir klar, dass ich OpenJDK verwendete. Es wurde behoben, nachdem ich stattdessen das Oracle JDK installiert hatte.
quelle