Где я должен поместить внешние файлы JAR при разработке веб-приложения? - PullRequest
8 голосов
/ 27 июня 2011

Я разрабатываю динамическое веб-приложение на Java (Servlets / JSP) в Eclipse. Я пытаюсь использовать внешний JAR (я использую StringUtils от Apache Commons), и я не понимаю, куда мне положить jar (/lib, /WEB-INF/lib?) И как мне это нужно настроить мой путь к классу (в Eclipse).

Я попытался поместить JAR-файлы в оба вышеупомянутых места и загрузить их в путь к классу, щелкнув Add JAR в свойствах проекта, и оба решения скомпилировались нормально, но выдало ошибку времени выполнения, например:

SEVERE: Servlet.service () для сервлета UserList выбросил исключение java.lang.NoClassDefFoundError: org / apache / commons / lang / StringUtils в cs236369.hw5.db.MySqlDbHandler.insert (MySqlDbHandler.java:58) в cs236369.hw5.servlets.UserList.doGet (UserList.java:50) на javax.servlet.http.HttpServlet.service (HttpServlet.java:617) на javax.servlet.http.HttpServlet.service (HttpServlet.java:717) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298) в org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:859) в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:588) в org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:489) at java.lang.Thread.run (неизвестный источник)

Итак ... как загрузить внешние файлы JAR?

Обратите внимание, что я не очень хорошо знаком с тем, как загружаются внешние JAR-файлы в Java, виртуальной машине или как Eclipse управляет всем этим, поэтому я был бы признателен за подробные решения.

1 Ответ

21 голосов
/ 27 июня 2011

Они должны быть помещены в yourapp/WEB-INF/lib.(В затмении вы добавляете их правильно).Поэтому убедитесь, что банка действительно есть.Обратите внимание, что если вы запускаете приложение из затмения, вам необходимо настроить сборку развертывания.

Сборка развертывания настраивается с помощью right click > properties > deployment assembly в eclipse.Там вы должны «добавить» свои «записи пути сборки Java»

...