在开发Web应用程序时,我应该在哪里放置外部JAR文件?

Ami*_*hum 8 java eclipse web-applications jar

我正在Eclipse中使用Java(Servlets/JSP)开发动态Web应用程序.我试图使用外部JAR(我使用StringUtilsApache的共享),我很困惑,我应该把罐子(/lib,/WEB-INF/lib?)?我需要如何配置我的类路径(在Eclipse).

我尝试将JAR放在上述两个位置,并通过单击Add JAR项目属性将它们加载到类路径中,并且两个解决方案都编译正常,但是给出了运行时错误,如下所示:

严重:Servlet的Servlet.service()UserList在cs236369.hw5.servlets的cs236369.hw5.db.MySqlDbHandler.insert(MySqlDbHandler.java:58)抛出异常java.lang.NoClassDefFoundError:org/apache/commons/lang/StringUtils .UserList.doGet(UserList.java:50)位于org.apache的javax.servlet.http.HttpServlet.service(HttpServlet.java:617)javax.servlet.http.HttpServlet.service(HttpServlet.java:717). 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)at org.apache.catalina.valves.ErrorReportValve .invoke(ErrorReportValve.java:102)atg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.在java.lang.Thread.run(未知来源)的org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:489)上的进程(Http11Protocol.java:588)

那么......我如何加载外部JAR?

请注意,我不熟悉外部JAR如何在Java,VM或Eclipse管理它的方式中加载,因此我将非常感谢详细的解决方案.

Boz*_*zho 21

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

部署程序集是通过right click > properties > deployment assemblyeclipse 配置的.你应该"添加"你的"Java构建路径条目"