0
点赞
收藏
分享

微信扫一扫

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

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_依赖包_02

 

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

 

举报

相关推荐

0 条评论