Я разрабатываю динамическое веб-приложение с Java (Servlets/JSP) в Eclipse. Я пытаюсь использовать внешний JAR (я использую StringUtils
из Apache Commons), и я не понимаю, куда мне поместить банку (/lib
, /WEB-INF/lib
?) и как мне нужно настроить путь к классу (в Затмение).
Я попытался поместить JAR-файлы в оба вышеупомянутых места и загрузить их в путь к классам, щелкнув Add JAR
в свойствах проекта, и оба решения компилируются нормально, но дают ошибку времени выполнения, например:
СЕРЬЕЗНЫЙ: 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.catali na.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) в java.lang .Thread.run (неизвестный источник)
Итак... как мне загрузить внешние JAR-файлы?
Обратите внимание, что я не очень хорошо знаком с тем, как внешние JAR-файлы загружаются в Java, в виртуальную машину или как Eclipse управляет всем этим, поэтому я был бы признателен за подробные решения.