我正在Eclipse中开发一个使用Java(Servlets/JSP)的动态Web应用程序。我试图使用外部JAR(我使用Apache Commons的StringUtils
),我很困惑我应该把jar放在哪里(/lib
,/WEB-INF/lib
?),以及如何配置我的类路径(在蚀)。开发Web应用程序时,我应该在哪里放置外部JAR文件?
我试图把JAR文件中上述两种地方,并加载它们到classpath通过单击项目属性Add JAR
和两个解决方案编译罚款,但给一个运行时错误,像这样:
SEVERE: Servlet.service() for servlet UserList threw exception java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils at cs236369.hw5.db.MySqlDbHandler.insert(MySqlDbHandler.java:58) at cs236369.hw5.servlets.UserList.doGet(UserList.java:50) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source)
那么......我如何加载外部JAR?
请注意,我并不熟悉Java,虚拟机或Eclipse如何管理所有外部JAR,因此我希望能够提供详细的解决方案。
“你将不得不配置部署组装”。 - 当我说我会欣赏更详细的解释时,这就是我的意思:)我不知道这意味着什么。你能解释一下吗? –
请参阅更新..... – Bozho
@Bozho如果我需要将jar放在根目录下我的意思是在WEB-INF/lib之外,那么如何构建它? – Achyut