【问题标题】:java.lang.ClassNotFoundException while creating an Instance of Class from Servlet's doGet()从 Servlet 的 doGet() 创建类实例时出现 java.lang.ClassNotFoundException
【发布时间】:2013-12-11 00:37:04
【问题描述】:

我对 Java Servlet 比较陌生。我正在尝试从我的 MedicareLocatorServlet 中的 doGet() 方法创建一个名为 HospitalFinder 的类的实例。 HospitalFinder 类使用外部库。当我从网页发起获取请求时,servlet 会抛出 ClassNotFoundException。 以下是异常详情:

SEVERE: Servlet.service() for servlet [MedicareLocatorServlet] in context with path [/Medicare] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.openrdf.sail.Sail
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at testclass.getHFInstance(testclass.java:6)
    at MedicareLocatorServlet.doGet(MedicareLocatorServlet.java:53)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

当我尝试从同一个包中的另一个类创建 HospitalFinder 的实例时,没有抛出异常。我试图寻找处理 classNotFoundException 的方法,但似乎没有任何效果。 P.S - 我正在使用 Eclipse 动态 Web 项目。 有人可以帮我解决这个问题吗?

【问题讨论】:

  • 您必须将所有第三方 jar 放入应用程序 classpth。类似于 ../yourapp/WEB-INF/lib
  • MedicareLocatorServlet...鉴于最近发生的事件,这将是一个很好的笑话:-D
  • 要将其部署到标准 servlet 容器中,您只需将 jar 文件放入 Web 应用程序下的 WEB-INF/lib 中。但是要通过 Eclipse 运行它,您需要编辑一个称为部署程序集的东西。
  • 感谢@Jorge Campos。它就像一个魅力!

标签: java servlets classnotfoundexception


【解决方案1】:

首先,你应该对eclipse如何部署和运行servlet项目有一个清晰的认识

1.eclipse会将所有源代码“编译”成几个.class文件。(可能因为java是解释型语言,用compile不是很确定)

2.eclipse会将.class文件放到tomcat可以使用的对应目录中。

3.你从你的浏览器发送一个http get请求,你的tomcat会解析你的请求并将你的请求重定向到你的MedicareLocatorServlet.class来处理然后发回http响应。

因此,您应该检查您的 Eclipse 是否已经编译了该类并将其放入您的服务器 webapps 目录。默认情况下,linux eclipse会将类文件放在目录中:workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps.workspace是你的eclipse工作空间。所以,你应该cd到这个目录并检查“.class”文件是否准备好。如果没有,你应该建立你的项目并部署它。

【讨论】:

    猜你喜欢
    • 2017-12-12
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2015-01-02
    • 2018-10-25
    相关资源
    最近更新 更多