Wo sollte ich externe JAR-Dateien beim Entwickeln einer Web-App ablegen?

8

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.

    
Amir Rachum 27.06.2011, 17:26
quelle

1 Antwort

21

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

    
Bozho 27.06.2011, 17:30
quelle

Tags und Links