java.lang.ClassNotFoundException:org.apache.catalina.loader.WebappClassLoader.loadClass上的HelloServlet [英] java.lang.ClassNotFoundException: HelloServlet at org.apache.catalina.loader.WebappClassLoader.loadClass

查看:487
本文介绍了java.lang.ClassNotFoundException:org.apache.catalina.loader.WebappClassLoader.loadClass上的HelloServlet的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 webapps / hello / WEB-INF / class / HelloServlet.class 中有一个Hello World servlet,我在下面的 web中注册了它.xml

I have a Hello World servlet in webapps/hello/WEB-INF/class/HelloServlet.class and I registered it as below in web.xml:

<servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>

但是,Tomcat无法启动,但出现以下异常:

However, Tomcat failed to start with the below exception:

Apr 30, 2012 1:50:10 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet HelloServlet as unavailable
Apr 30, 2012 1:50:10 PM org.apache.catalina.core.ApplicationContext log
java.lang.ClassNotFoundException: HelloServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:827)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process
(Http11AprProtocol.java:594)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
    at java.lang.Thread.run(Unknown Source)

Apr 30, 2012 1:50:10 PM org.apache.catalina.core.StandardWrapperValve invoke

这是怎么引起的,我该如何解决?

How is this caused and how can I solve it?

推荐答案

主要问题是您的servlet类没有包。

The main problem is that your servlet class doesn't have a package. Declare one.

package com.example;

public class HelloServlet extends HttpServlet {

并且在<$ c中注册时$ c> web.xml ,请确保您包括以下软件包:

And when registering in web.xml, make sure you include the package:

<servlet-class>com.example.HelloServlet</servlet-class>

此外,您的类文件应位于 / WEB-INF / classes中目录,而不是 / WEB-INF / class

Also, your class file should be inside the /WEB-INF/classes directory, not /WEB-INF/class.

webapps/hello/WEB-INF/classes/com/example/HelloServlet.class

这篇关于java.lang.ClassNotFoundException:org.apache.catalina.loader.WebappClassLoader.loadClass上的HelloServlet的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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