Servlets java.lang.ClassNotFoundException:HelloServlet位于org.apache.catalina.loader.WebappClassLoader.loadClass
我在Servlets java.lang.ClassNotFoundException:HelloServlet位于org.apache.catalina.loader.WebappClassLoader.loadClass,servlets,web.xml,classnotfoundexception,Servlets,Web.xml,Classnotfoundexception,我在webapps/Hello/WEB-INF/class/HelloServlet.class中有一个Hello World servlet,我在WEB.xml中注册了它,如下所示: <servlet> <servlet-name>helloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <se
webapps/Hello/WEB-INF/class/HelloServlet.class
中有一个Hello World servlet,我在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>
这是如何导致的,我如何解决它?主要问题是servlet类没有包。申报一个
package com.example;
public class HelloServlet extends HttpServlet {
在web.xml
中注册时,请确保包含以下软件包:
<servlet-class>com.example.HelloServlet</servlet-class>
尝试将HelloServlet类保留在某些包中(而不是默认包中)。现在您可以只使用注释,这样会更容易:
package com.yourpackage;
import java.io.IOException;
import java.util.ResourceBundle;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class HelloWorldServlet
*/
@WebServlet("/HelloWorldServlet")
public class HelloWorldServlet extends HttpServlet {
看
干杯 我也遇到了同样的问题(我使用老式的servlet进行“学习”),我通过重建maven项目(在eclipse maven-->更新项目中)并在eclipse和tomcat中清理项目来解决这个问题。我假设抛出该错误是因为该类不是由maven编译的,因此没有包含在tomcat的编译包中。请不要使用已有十年历史的tomcat特定资源来学习servlet。阅读最新的资源。无包servlet仅在某些(和古老的!)Tomcat版本中工作。
webapps/hello/WEB-INF/classes/com/example/HelloServlet.class
package com.yourpackage;
import java.io.IOException;
import java.util.ResourceBundle;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class HelloWorldServlet
*/
@WebServlet("/HelloWorldServlet")
public class HelloWorldServlet extends HttpServlet {