当前位置: 首页 > 知识库问答 >
问题:

java.lang.ClassNotFoundException在带有eclipse的tomcat中用于servlet的[重复]

毕瀚
2023-03-14

我开始在eclipse中使用servlet开发java web应用程序,并在本地主机上用tomcat服务器测试它。我已经在tomcat中部署了应用程序,但是当我尝试在浏览器中加载目标url时,我得到了以下堆栈跟踪:

Jul 31, 2013 2:58:31 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet ImageServlet as unavailable
Jul 31, 2013 2:58:31 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet ImageServlet
java.lang.ClassNotFoundException: test.ImageServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:865)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    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:953)
    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:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)  

ImageServlet类非常清楚地位于我的eclipse工作区的myproject/src/test文件夹中,其中myproject是eclipse项目的名称,test是包。

web.xml位于myproject/web/web-inf/web.xml中,而myproject.xml位于myproject/myproject.xml中

web.xml的内容包括:

<?xml version="1.0"?>
<web-app 
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

    <servlet>
        <servlet-name>ImageServlet</servlet-name>
        <servlet-class>test.ImageServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ImageServlet</servlet-name>
        <url-pattern>/image</url-pattern>
    </servlet-mapping>
</web-app>

myProject.xml的内容为:

共有1个答案

苏星宇
2023-03-14

有时在创建过滤器或servlet时,类文件不会在Eclipse的build文件夹中生成。清除应用程序并构建它一次,就会在上述路径中生成一个.class文件。在某些情况下,这会删除类未找到的错误。

 类似资料:
  • 我在Eclipse Mars版本中测试了tomcat v8。我创建了一个动态Web项目,并创建了一个servlet。然而,当我访问HelloWorld servlet时,该网页显示错误404。请问怎么修 HelloWorld Servlet

  • 我试图为一个我目前正在工作的项目制作一个简单的REST API,以简化我每天必须做的任务,当我到达托管它的地方时,我遇到了一个500服务器的错误。查看(tomcat home dir)/logs/localhost.2021-10-22.log中的日志,我发现了这个错误: 我在这里还有“不存在”的类的代码: 我检查了这个类是否确实存在,尝试重新构建这些类,将其导入为未编译的文件,并使用web.xm

  • 我正在使用 雄猫 9 日食版本: 2020-09 (4.17.0) Apache Maven 3.6.3 我开始编写一个servlet,它运行在Tomcat容器中。当我在Ecplise(在服务器上调试)中运行它时,我可以看到一些来自Tomcat的日志输出。喜欢 servlet运行良好,开始如下所示: 但我看不到调试行。 对于日志记录,我使用的是slf4j 1.7和log4j2。我有以下<code>

  • 当我运行下面的代码时,我得到了下面的错误,但它以前起作用了,我不确定Eclipse得到了什么,现在它不太好了

  • 我尝试按照Spring入门指南“使用Spring MVC提供Web内容”,该指南除了使用Maven之外还使用了Spring Boot和Gradle。我为Eclipse安装了Gradle插件。 我希望使用Eclipse中的Tomcat服务器运行应用程序,因为我还遵循了“将Spring Boot JAR应用程序转换为WAR”指南,并更改了指南中提到的“build.gradle”文件。基本上,我添加了行

  • 我的第一个Web应用程序有问题。我使用IntelliJ作为IDE,Tomcat作为WebServer。我尝试访问的每个servlet都会抛出一个404错误。即使我拷贝一些youtube教程,这似乎像一个魅力一样起作用。 表单中的按钮将我发送到:http://localhost:8080/iubhquiz/login