实例化Servlet类ServletTest异常的处理方式
实例化Servlet类ServletTest异常的处理方式
Tomcat与Servlet的版本对应关系
例如: Tomcat9.0x对应的Servlet最低版本为Servlet4.0,
如果Tomcat低于9.0而使用了Servlet4.0会出现问题, 反之也是
由于我用的是Tomcat10.0(需要Servlet5.0版),而maven导入的是Servlet4.0.1, 由于Tomcat10中的servlet-api与maven导入的servlet-api不匹配所导致的
页面报错信息↓
HTTP状态 500 - 内部服务器错误
类型 异常报告消息 实例化Servlet类[com.example.servlet.ServletTest]异常描述 服务器遇到一个意外的情况,阻止它完成请求。例外情况jakarta.servlet.ServletException: 实例化Servlet类[com.example.servlet.ServletTest]异常org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:353)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:870)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1699)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.lang.Thread.run(Thread.java:748)
根本原因。java.lang.NoClassDefFoundError: javax/servlet/Servletjava.lang.ClassLoader.defineClass1(Native Method)java.lang.ClassLoader.defineClass(ClassLoader.java:756)java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2516)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:872)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1408)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1252)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:353)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:870)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1699)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.lang.Thread.run(Thread.java:748)
根本原因。java.lang.ClassNotFoundException: javax.servlet.Servletorg.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1444)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1252)java.lang.ClassLoader.defineClass1(Native Method)java.lang.ClassLoader.defineClass(ClassLoader.java:756)java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2516)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:872)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1408)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1252)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:353)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:870)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1699)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.lang.Thread.run(Thread.java:748)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看
解决方式: 降低Tomcat版本至9.0x
问题发现
由于我配置的是Tomcat10.0版本,运行项目时一开时,默认访问index.jsp页面,当我访问servlet的程序时,出现了这个报错!
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- servlet标签,给Tomcat配置一个servlet程序--><servlet><!--servlet-name给servlet起一个别名(一般是类名)--><servlet-name>HelloServlet</servlet-name><!--servlet-class是servlet程序的全类名--><servlet-class>com.example.servlet.ServletTest</servlet-class></servlet><!--servlet-mapping标签给servlet程序配置访问地址. 这里的名字需要跟上面的servlet-name名字一至--><servlet-mapping><!--servlet-name标签是告诉服务器,我当前配置的地址是给那个程序使用的--><servlet-name>HelloServlet</servlet-name><!--url-pattern标签配置访问地址/ 斜杠在服务器解析的时候,表示为 http://ip:port/工程路径/hello 表示配置访问servlet的路径: http://ip:port/工程路径/hello, 可以将路径映射到servlet.ServletTest的实例化对象--><url-pattern>/hello</url-pattern></servlet-mapping>
</web-app>
实例化Servlet类ServletTest异常的处理方式相关推荐
- 解决实例化Servlet类XXX异常
别人碰到什么问题我不管,我只记录自己碰到这个问题的解决过程. 用javac编译好了servlet的class文件,接着复制该文件到tomcat的webapps的项目名(我照着教程写的crm)目录下. ...
- 解决实例化Servlet类[com.mu.servlet.HelloServlet]异常
解决实例化Servlet类[com.mu.servlet.HelloServlet]异常 方案一:检测*.class文件是否在目标文件目录下 如果无,需要寻找这个*.class文件将其放入目标文件目录 ...
- maven tomcat10 servlet api 不兼容 包名javax变成jakarta 实例化Servlet类 异常
学习javaweb,用maven构建项目,在pom.xml里面添加了javax.servlet依赖 写了一个servlet后,部署到tomcat上,出现了实例化异常 当时使用的是tomcat10,没想 ...
- 实例化servlet类[web.LoginServlet]异常
实例化servlet类[web.LoginServlet]异常 异常 Exception javax.servlet.ServletException: 实例化Servlet类[web.Registe ...
- 求解:Tomcat实例化Servlet类异常?
求解:运行web项目时报错实例化servlet类异常 初学者,接触不到一年. jdk使用的是jdk13,按照老师要求并未使用集成开发环境,使用的是记事本进行编写,javaBean和Servlet可以正 ...
- 实例化Servlet类异常
最近初学Servlet,在编写第一个Servlet程序时,遇到了一个令我很苦恼的问题.java代码和XML配置文件中的内容都没有问题,也在Edit Configurations中修改了server的n ...
- javax.servlet.ServletException: 实例化Servlet类[com.enjoy.book.action.UserServlet]异常
javax.servlet.ServletException: 实例化Servlet类[com.enjoy.book.action.UserServlet]异常 问题产生的原因是:servlet层在访 ...
- Tomcat 10 调用Servlet提示 500 实例化Servlet类异常
最近在做Java EE的项目时把Tomcat服务器更新到了10.0.21,然后在测试调用Servlet中出现了如下异常 注意看红框框里面的内容 通过对错误信息的解读我们不难发现Tomcat 10版本的 ...
- javax.servlet.ServletException: 实例化Servlet类[com.wk.web.RegisterServlet]异常
问题如下: Http:500 解决方法:
最新文章
- C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针
- python【Matlibplot绘图库】基本使用(真の能看懂~!)
- 【云吞铺子之专家来了】CDN缓存解读和配置策略
- 阿里公共DNS正式发布:223.5.5.5 223.6.6.6
- 启动万维网发布服务(W3SVC)
- 全国计算机等级考试题库二级C操作题100套(第86套)
- js 的正则表达式 部分展示test()方法的验证功能
- 编程开发之--单例模式(2)
- python 学习笔记 (核心)
- python实现洗牌算法_【Python】洗牌算法及 random 中 shuffle 方法和 sample 方法浅析...
- Android——简单模拟银行转账
- 安装GitExtentions KDiff3已配置为合并工具,kdiff3的路径未配置
- 那些年我们用过的SSD
- DIY智能家居语音助理——语音智控万物
- Hybird A*算法
- 如何留住企业中层领导
- SPSS是什么?SPSS软件的功能有哪些?
- 老男孩第58期马帅琦
- mybatis 自动填充无效_mybatisPlus踩坑之--自动填充
- 阿里滑块x82y,223,224,225算法挺难的,千辛万苦。
热门文章
- 猎豹浏览器发布2.0版,性能大幅提升
- php上传 找不到临时文件夹(解决方法)
- cpu性能评测(i5-4460,i5-4400,i5-3470,i5-2400s,i3-3220T,G860)
- UDP 端口扫描 - Nmap
- 如何用Python进行数据分析,需要掌握哪些技术?
- 关于edge浏览器下载
- Android消息推送叨逼叨
- linux dlna 客户端,UPNP/DLNA(客户端)播放器推荐?
- SSCI(社会科学引文索引)介绍
- OPPO R9s刷机包_OPPO R9s线刷包救砖包教程下载