在开发web应用程序时,我应该将外部JAR文件放在哪里



我正在Eclipse中使用Java(Servlet/JSP)开发一个动态web应用程序。我正在尝试使用一个外部JAR(我使用的是Apache Commons中的StringUtils),但我不知道应该把JAR放在哪里(/lib/WEB-INF/lib?),以及我需要如何配置我的类路径(在Eclipse中)。

我尝试将JAR放在前面提到的两个地方,并通过单击项目属性中的Add JAR将它们加载到类路径中,两个解决方案都编译得很好,但出现了这样的运行时错误:

SEVERE:Servlet UserList的Servlet.service()引发异常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.httpHttpServlet.service(HttpServlet.java:617)位于javax.servlet.httpHttpServlet.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.StandardWrapperValv.invoke(StandardWrapperValve.java:233)网址:org.apache.catalina.core.StandardContextValv.invoke(StandardContextValv.java:191)网址:org.apache.catalina.core.StandardHostValv.invoke(StandardHostValv.java:127)网址:org.apache.catalina.vals.ErrorReportValve.ioke(ErrorReportValve.java:102)网址:org.apache.catalina.core.StandardEngineValv.invoke(StandardEngineValv.java:109)网址:org.apache.catalina.connecter.CoyoteAdapter.service(Coyotedapter.java:298)网址:org.apache.coyote.http11.Http11Processor.produce(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?

请注意,我不太熟悉如何在Java、VM中加载外部JAR,也不太熟悉Eclipse如何管理这一切,所以我很感激详细的解决方案。

它们必须放置在yourapp/WEB-INF/lib中。(在eclipse中,您正确地添加了它们)。所以要确保罐子真的在那里。请注意,如果您从eclipse中启动应用程序,则必须配置部署组装。

部署程序集是通过eclipse中的right click > properties > deployment assembly进行配置的。在那里,您应该"添加"您的"Java构建路径条目"

最新更新