繁体   English   中英

从Servlet的doGet()创建类实例时出现java.lang.ClassNotFoundException

[英]java.lang.ClassNotFoundException while creating an Instance of Class from Servlet's doGet()

我对Java Servlets比较陌生。 我正在尝试从MedicareLocatorServlet中的doGet()方法创建一个名为HospitalFinder的类的实例。 HospitalFinder类使用外部Libs。 当我从我的网页发起get请求时,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的方法,但似乎没有任何工作。 PS - 我正在使用Eclipse动态Web项目。 有人可以帮我弄这个吗?

首先,您应该清楚地了解如何通过eclipse部署和运行servlet项目

1.eclipse会将所有源代码“编译”成几个.class文件。(也许使用compile并不是很明确,因为java是一种解释语言)

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 workspace.So,你应该cd到这个目录并检查“.class”文件是否准备就绪。如果没有,您应该构建项目并进行部署。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM