在启动tomcat以后,控制台发现“Offending class: javax/servlet/Servlet.class”信息:

信息: validateJarFile(E:\code\MyApp\target\MyApp\WEB-INF\lib\servlet-api-3.0-alpha-1.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class

解决:

原因:tomcat下的servlet.jar跟项目的WEB-INF下的lib包里的servlet.jar冲突了(具体原因是跟tomcat加载项目顺序有关)将servlet包从项目的WEB-INF下的lib包删除。再启动,错误信息就消失了。

解决过程中出现问题:删除web项目中WEB-INFO/lib中的servlet.jar包后,再次运行项目报错,原因是项目中import的关于该jar中的类找不到了,所以在项目的library中单独添加了servlet.jar包,再启动就正常了。

tomcat加载项目顺序文档参考:http://alinazh.blog.51cto.com/5459270/1276253

http://blog.csdn.net/tongxinxiao/article/details/43602675

备注:今后尽量保证在tomcat中和项目的lib中不要有重复的包,版本号不同的也不要有,避免造成类似问题。

 
 

tomcat中servlet冲突问题的更多相关文章

  1. tomcat中Servlet的工作机制

    在研究Servlet在tomcat中的工作机制前必须先看看Servlet规范的一些重要的相关规定,规范提供了一个Servlet接口,接口中包含的重要方法是init.service.destroy等方法 ...

  2. 深入了解tomcat中servlet的创建方式实现

    Tomcat如何创建Servlet? A.先到缓存中寻找有没有这个对象(Servlet是单实例的,只会创建一次) 如果没有: 1.通过反射去创建相应的对象(执行构造方法) 2.tomcat会把对象存放 ...

  3. 关于tomcat中Servlet对象池

    Servlet在不实现SingleThreadModel的情况下运行时是以单个实例模式,如下图,这种情况下,Wrapper容器只会通过反射实例化一个Servlet对象,对应此Servlet的所有客户端 ...

  4. tomcat中配置servlet.xml的JNDI或JDBC连接数据库【原】

    tomcat中配置servlet.xml的JNDI或JDBC连接数据库 一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\se ...

  5. 【Tomcat】JVM,Tomcat,Servlet,Tomcat中的应用。彻底弄懂这些概念之间的联系

    tomcat和tomcat中的应用(即webapps下的war包)是运行在同一个jvm中的,但分工不同. tomcat的角色是“调度员”,而你的应用的角色是“工作者”,tomcat处理一个请求的大致过 ...

  6. javaweb中Servlet配置到Tomcat

    1.tomcat容器来运行Servlet程序 在javase中,都是在控制台中运行java代码,而且提供了一个main方法,代码运行的入口.在javaee中,想要运行java代码,不是通过控制台程序来 ...

  7. Tomcat中的Host和Engine级别的servlet容器

    这边文章主要介绍的是Host容器 和 Engine容器.如果你想在同一个Tomcat上部署运行多个Context容器的话,你就需要使用Host容器,从理论上来讲,如果你的Tomcat只想要部署一个Co ...

  8. Tomcat中部署后JspFactory报异常的解决方案

    The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory的异常的原因及解决办法原 ...

  9. spring boot + jersey工程由jar包转为war包在tomcat中启动报错问题

    第一步: 在maven下,将Spring Boot工程由jar转换为war包启动,很简单,将pom.xml文件中的packaging改为war <packaging>war</pac ...

随机推荐

  1. 基于Robot Framework的接口自动化测试

    Robot Framework框架简介 Robot Framework框架是一个通用的验收测试和验收测试驱动开发的自动化测试框架(ATDD),使用的是关键字驱动的测试方法.它本身拥有强大的标准库,此外 ...

  2. Hadoop 启动/停止集群和节点的命令

    集群启动/停止Hadoop集群:start-all.sh    stop-all.sh 1) 启动NameNode, DataNode 2) 启动JournalNode, JournalNode在hd ...

  3. 单选按钮 设置required属性无法进行非空验证

    先看代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  4. pwnable.kr-random-Writeup

    MarkdownPad Document *:first-child { margin-top: 0 !important; } body>*:last-child { margin-botto ...

  5. Centos6.10-FastDFS-Tracker-Nginx示例配置

    nginx 安装过程<详见> 1.进入工作目录 cd /usr/local/nginx/conf 2.创建子目录 mkdir configs 3.创建storage代理配置 cd conf ...

  6. 了解Maven的基本知识

    我的博客地址:https://www.cnblogs.com/themysteryofhackers/p/11934540.html 更新时间:2019-11-26 一.Maven的基本概念 Mave ...

  7. Swagger Learning Notes

    背景 首先指定schema[计划的提纲],实时更新最新API,降低集成风险: 早些年:制定word计划文档:前后端分离: 前端测试后端接口:postman 后端提供接口,需要实时更新最新的消息改动 什 ...

  8. python中文本的读写操作

    文本的操作 函数的排序操作: def func(i): return i[2] list=[('曹操',101,'c'),('吕布',100,'d'),('刘备',200,'l'),('大乔',50, ...

  9. BETWEEN

    选取介于两个值之间的数据范围内的值.这些值可以是数值.文本或者日期. 选取 alexa 介于 1 和 20 之间的所有网站: SELECT * FROM table ; NOT BETWEEN 显示不 ...

  10. 一个汇编小demo

    一个小demo: #include<stdio.h> void main(){ ; char *str="i=%d\n"; printf("begin\n&q ...