Ich entwickle eine dynamische Webanwendung mit Java (Servlets / JSP) in Eclipse. Ich versuche, eine externe JAR zu verwenden (ich verwende StringUtils
von Apache Commons) und ich bin verwirrt, wo ich das Glas ( /lib
, /WEB-INF/lib
?) Und wie muss ich setzen konfiguriere meinen Klassenpfad (in Eclipse).
Ich habe versucht, die JARs an den beiden oben genannten Stellen zu setzen und sie in den Klassenpfad zu laden, indem ich in den Projekteigenschaften auf Add JAR
klicke und beide Lösungen kompilieren, aber einen Laufzeitfehler wie folgt geben:
SEVERE: Servlet.service () für Servlet UserList hat Ausnahme ausgelöst java.lang.NoClassDefFoundError: org / apache / commons / lang / StringUtils bei cs236369.hw5.db.MySqlDbHandler.insert (MySqlDbHandler.java:58) bei cs236369.hw5.servlets.UserList.doGet (UserList.java:50) bei javax.servlet.http.HttpServlet.service (HttpServlet.java:617) bei javax.servlet.http.HttpServlet.service (HttpServlet.java:717) bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290) bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) bei org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) bei org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) bei org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127) bei org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) bei org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) bei org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298) bei org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:859) bei org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:588) bei org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:489) bei java.lang.Thread.run (unbekannte Quelle)
Also ... wie lade ich externe JARs?
Bitte beachten Sie, dass mir die Art und Weise, wie externe JARs in Java, die VM oder wie Eclipse alles verwaltet, nicht vertraut ist. Daher würde ich mich über detaillierte Lösungen freuen.
Sie müssen in yourapp/WEB-INF/lib
platziert werden. (In Eclipse fügen Sie sie richtig hinzu). Stellen Sie also sicher, dass das Glas wirklich da ist. Beachten Sie, dass Sie die Deployment-Assembling konfigurieren müssen, wenn Sie die App innerhalb von Eclipse starten.
Die Bereitstellungsassembly wird in der Eclipse über right click > properties > deployment assembly
konfiguriert. Dort sollten Sie Ihre "Java-Build-Pfad-Einträge" hinzufügen
Tags und Links eclipse java web-applications jar