运行java servlet时的Classnotfoundexception [英] Classnotfoundexception while running java servlet
本文介绍了运行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屋!
查看全文