【问题标题】:dynamic web project: "java.lang.ClassNotFoundException" despite .jar file in the WEB-INF/lib directory动态 Web 项目:“java.lang.ClassNotFoundException”,尽管 WEB-INF/lib 目录中有 .jar 文件
【发布时间】:2023-03-24 12:58:01
【问题描述】:

我正在处理需要一些 .jar 文件的作业。这项任务要求我在一个带有 JSP 文件的 Tomcat servlet 上做一些工作。

我在 Eclipse 的 Java 构建路径中包含了我的 .jar,并将它们复制/添加到 WEB-INF/lib 目录中。

当我像这样运行项目时:http://localhost:8080/project/ 我看到 index.jsp 页面有空 div,其中数据应该来自通过 TestServlet.java 执行的代码。

找原因,结账​​http://localhost:8080/project/TestServlet时看到如下错误:

May 3, 2013 1:22:26 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [TestServlet] in context with path [/project] threw exception [Servlet execution threw an exception]
with root cause java.lang.ClassNotFoundException: com.aetrion.flickr.FlickrException

    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
    at TestServlet.doGet(TestServlet.java:27)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:680)

这很奇怪,因为我再次将 .jar 包含在 Java 构建路径中,并将 .jar 复制/添加到 WEB-INF/lib 目录中。

有什么想法或帮助吗?

【问题讨论】:

    标签: java eclipse jsp tomcat servlets


    【解决方案1】:

    你必须尝试在你的类路径中添加jar,项目>构建路径>配置构建路径>添加jar(或外部jar)

    【讨论】:

    • 它们已经存在了,我将它们放在构建路径和 WEB-INF/lib 中
    【解决方案2】:

    为了确定,首先将 jar 放入 web-inf/lib 中,然后将其添加到 t 项目>构建路径>配置构建路径>添加jar,按这个顺序,对吗?

    尝试在“库”选项卡中将罐子移动到顶部或几乎顶部...会是可见性问题

    【讨论】:

    • 好吧,我决定尝试“重新启动”——我删除了构建路径中的所有 jar,将它们从 inf/lib 目录中删除。然后我将它们重新添加到目录 firstthen 将它们放入构建路径并运行 - 这有效,我真的不知道为什么,但它确实,现在我可以专注于调试我的代码了,谢谢!
    【解决方案3】:

    即使我遇到了同样的问题。这就是我解决它的方法: 您可以将外部 jar 添加到 tomcat 文件夹-> lib-> 在系统中添加外部 jar,添加后从项目中删除该文件夹并再次添加,或者您可以删除 tomcat 文件夹并从 tomcat 文件夹中复制所有 jar - >lib,你可以将它作为你的外部 jars 添加到你的项目中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 2011-02-20
      • 1970-01-01
      相关资源
      最近更新 更多