gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:29:28 25 4
gpt4 key购买 nike

我对 Java Servlet 比较陌生。我正在尝试从 MedicareLocatorServlet 中的 doGet() 方法创建名为 HospitalFinder 的类的实例。 HospitalFinder 类使用外部库。当我从网页发起 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 的方法,但似乎没有任何效果。P.S - 我正在使用 Eclipse 动态 Web 项目。有人可以帮我解决这个问题吗?

最佳答案

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

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 工作空间。所以,你应该cd到这个目录并检查“.class”文件是否准备好。如果没有,你应该构建你的项目并部署它。

关于从 Servlet 的 doGet() 创建类实例时出现 java.lang.ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20207415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com