Java Servlet 入门:问题系列:servlet java.lang.ClassNotFoundException

2年前 (2022) 程序员胖胖胖虎阿
526 0 0

1、工程目录:

Java Servlet 入门:问题系列:servlet java.lang.ClassNotFoundException

 

2、Servlet:HelloServlet

package test.cyq;
import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;

//@WebServlet(value = "/demo" urlpatterns="/demo" );
public class HelloServlet implements Servlet {

    //完成初始化的方法,默认情况下,servlet第一次被访问时调用,且只调用一次
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("innit-----------------------------------");

    }
    //销毁方法,内存释放时或者服务器关闭时会调用一次,且只能调用一次。
    public void destroy() {
        System.out.println("destroy-----------------------------------");

    }
    public ServletConfig getServletConfig() {
        System.out.println("getServletConfig-----------------------------------");
        return null;
    }
    public String getServletInfo() {
        System.out.println("getServletInfo-----------------------------------");
        return null;
    }

    //提供服务,每一次被访问是都会被访问
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
        System.out.println("hello world-------------------------");
        
    }
}

3、web.xml 配置映射:

发现默认注解不生效,使用xml配置映射试试:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
    <servlet>  
        <servlet-name>HelloServlet</servlet-name><!-- 这里的name与下面的name一致即可 -->  
        <servlet-class>test.cyq.HelloServlet</servlet-class><!-- 使用到的class文件 -->  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>HelloServlet</servlet-name><!-- 与上面的name一致 -->  
        <url-pattern>/demo</url-pattern><!-- 所映射的URL -->  
    </servlet-mapping>  
</web-app>

4、运行时问题:

Java Servlet 入门:问题系列:servlet java.lang.ClassNotFoundException

 

5、问题解决方式:

尝试过N种方法:

1、更换3.0.1到4.0.1版本,无解。

2、移除Maven的依赖,使用包直接添加方式,无解。

3、清除项目Clean,再运行,无解。

4、把依赖包scope从provided改成runtime,错误变成无发转换Tomcat的servlet,还是无解。

通过网络上的多种方式,发现都无法解决。

还好经过思考,发现了另一种解决方式:Java Servlet 入门:使用Tomat的servlet-api.jar库解决:servlet java.lang.ClassNotFoundException

 

相关文章

暂无评论

暂无评论...