运行java servlet时的Classnotfoundexception [英] Classnotfoundexception while running java servlet

查看:141
本文介绍了运行java servlet时的Classnotfoundexception的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在博客中看到这个错误很常见但是我无法以某种方式解决它..

I see this error very common in the blogs and SO but I could not somehow resolve it..

错误:

异常

javax.servlet.ServletException: Error instantiating servlet class DemoServlet
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:701)
root cause

java.lang.ClassNotFoundException: DemoServlet
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:701)

项目文件夹结构..

[m1980@web449 sampleproject]$ tree .
.
├── pom.xml
├── src
│   └── main
│       ├── java
│       │   └── com
│       │       └── prem
│       │           └── controller
│       │               └── DemoServlet.java
│       ├── resources
│       └── webapp
│           ├── index.jsp
│           └── WEB-INF
│               └── web.xml
└── target
    ├── classes
    │   └── com
    │       └── prem
    │           └── controller
    │               └── DemoServlet.class
    ├── maven-archiver
    │   └── pom.properties
    └── sampleproject
        ├── index.jsp
        ├── META-INF
        └── WEB-INF
            ├── classes
            │   └── com
            │       └── prem
            │           └── controller
            │               └── DemoServlet.class
            └── web.xml

22 directories, 9 files

我能够启动apache并且运行没有任何问题...当我尝试 http:// localhost / sampleproject 它显示索引页面(Hello World!)..但是当我尝试/欢迎时,我得到上述错误...

Im able to start apache and it runs without any problem...when I try http://localhost/sampleproject it displays the index page(Hello World!)..but when I try /welcome I get the above error...

web.xml

<web-app>
  <display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>DemoServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>

</web-app>


推荐答案

Tomcat正在寻找名为<$的软件包私有类C $ C> DemoServlet 。您需要使用完全限定的类

Tomcat is looking for a package private class called DemoServlet. You need to use the fully qualified class

<servlet-class>com.prem.controller.DemoServlet</servlet-class>

这篇关于运行java servlet时的Classnotfoundexception的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆