项目部署到Tomcat报这样的异常:validateJarFile jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

可能的原因:

造成这种情况的原因很可能是:

一、项目的WEB-INF/lib下有servlet-api.jar。

二、项目的WEB-INF/lib下有包含javax.servlet包的其他JAR包(如WebLogic 8.1的weblogic.jar),造成与Tomcat自身的servlet-api.jar的冲突。因为Tomcat的WebappClassLoader加载JAR包时会进行校验,一旦发现这样的冲突就会报出上面的异常。

解决方案:

tomcat 启动后先将tomcat/common/lib目录下的jar包全部读入内存,如果webapps目录里的应用程序中WEB-INF/lib目录下有相同的包,将无法加载,估计不同版本的包之间也会造成类似问题。因此建议尽量不要把jar包放入tomcat/common/lib目录下,应该放入WEB- INF/lib目录下。

一、针对第一种情况,不要将servlet-api.jar放到WEB-INF/lib下,因为项目部署时根本不需要这个jar包,Tomcat已经提供了。当然如果工程不导入此jar包,在Eclipse里面代码会报错,你可以将servlet-api.jar放在工程下的一个专门的目录(如lib)下面,然后通过Eclipse导入到工程中即可。

二、针对第二种情况,谈谈我的解决办法,在我的项目中由于某种特殊的需求,weblogic.jar是通过自定义的类加载器加载的,而不是由Tomcat的WebappClassLoader加载,所以上述问题也就不存在了。如果您遇到同样的问题,可以借鉴此种方案,只需写一个最简单的类加载器即可。

tomcat 部署web项目异常的更多相关文章

  1. Tomcat部署web项目,如何直接通过域名访问,不加项目名称

    问题:下面的问题是互联网上问得比较多的,但是显然都是同一个问题. JavaWeb项目部署到tomcat服务之后设置不需要输入项目名称即可访问? Tomcat部署web项目,如何直接通过域名访问,不加项 ...

  2. tomcat部署web项目方法

    一.tomcat部署web项目之静态配置: 方法一:直接将为web项目放到webapps下: 如图所示:在webapps文件下,存放了一个html文件,启动tomcat,访问http://localh ...

  3. Intellij IDEA通过tomcat部署web项目的机制

    问题 以前使用eclipse调用tomcat运行web项目时,eclipse的方式非常直接了当,就是直接将项目更新到%TOMCAT_HOME%/webapps目录下即可.然而在使用Intellij I ...

  4. tomcat部署web项目的方式 转

    JavaWeb开发Tomcat中三种部署项目的方法,开始Java web开发必不可少的步骤,经过查找,觉得有篇文章介绍的不错 1.在conf目录中新建Catalina\localhost目录,在该目录 ...

  5. eclipse,tomcat部署web项目,以及本地文件访问

    1.直接把项目复制到Tomcat安装目录的webapps目录中,这是最简单的一种Tomcat项目部署的方法,也是初学者最常用的方法. 2.在tomcat安装目录中有一个conf文件夹,打开此文件夹,其 ...

  6. Tomcat 部署 Web 项目的本质理解

    手动创建Web项目 不借助集成开发工具IDE,直接手动创建一个Web项目,有助于理解Web项目的本质. 1.首先建立一个myweb文件夹(自己定义项目名). 2.然后可以建一个html文件(文件里面只 ...

  7. Tomcat部署web项目

    在Myeclipse中,我们很容易做到这一步:把一个web项目生成war文件 其实在eclipse中,实现这样的功能,也是很简单的. 下面就看一下是怎样操作的吧! 新建一个web项目: 取名为:ecl ...

  8. 【IDEA下使用tomcat部署web项目】

    1.IDEA下的WEB项目新建就不说了. 2.配置tomcat:file-->settings-->Build,Execution,Deployment-->Application ...

  9. Tomcat 部署web 项目

    转载,原文链接: https://www.cnblogs.com/ysocean/p/6893446.html 侵删 回到顶部 3.Tomcat 的目录结构 回到顶部 4.部署项目的第一种方法(项目直 ...

随机推荐

  1. 使用WinSetupFromUSB来U盘安装windowsXP(不使用win PE系统)

    目前用U盘安装XP的多数方法都要借助WINPE,比较麻烦.使用WinSetupFromUSB只需要下载一个6.5MB的绿色软件就可以制作好windows xp的安装U盘,方便简捷. WinSetupF ...

  2. 用sqlserver处理excel表格

    本来最近在研究微信公众平台的,老大临时交我个任务,把excel表格里的数据导入sql数据库,我想这so easy嘛. 没想都在上面消磨了两天... 把情况介绍下:在数据库中有如下这样结构的表(A表) ...

  3. canvas学习笔记(一)-认识canvas

    canvas是html5新增的一个标签,主要用于图形的绘制.我们可以把它理解为是浏览器给我们提供了一个画板,至于要绘制怎样的画卷,就看神笔马良你的主意了.而在canvas上绘制图形使用的笔,就是js了 ...

  4. MySQL学习笔记(3)

    约束 作用:保证数据的完整性,唯一性 根据字段:分为表级约束(针对2个或者2个以上字段使用),列级约束(针对1个字段使用) 约束类型:NOT NULL 非空约束 PRIMARY KEY  主键约束 U ...

  5. opacity在IE6~8下无效果,解决的办法

    opacity在IE6~8下无效果,解决的办法 问题出现时rgba()在ie6下不出效果,最后查到是opacity的问题. opacity是css3时出现的,目前主流浏览器都支持.but老IE是个麻烦 ...

  6. SQL学习之组合查询(UNION)

    1.大多数的SQL查询只包含从一个或多个表中返回数据的单条SELECT语句,但是,SQL也允许执行多个查询(多条SELECT语句),并将结果作为一个查询结果集返回.这些组合查询通常称为并或复合查询. ...

  7. js apply 和call的区别

    function Person(name, profession) { this.name = name; this.profession = profession; this.speak = fun ...

  8. 经常会用到的js函数

    //获取样式function getStyle(obj,attr){ if(obj.currentStyle){  return obj.currentStyle[attr];  }else{  re ...

  9. Android 用属性动画自定义view的渐变背景

    自定义view渐变背景,同时监听手势自动生成小圆球. 宿主Activity如下: package com.edaixi.tempbak; import java.util.ArrayList; imp ...

  10. IO之读入文件

    整个java.io包中最重要的就是5个类和一个接口,5个类指的是File,OutputStream,InputStream,Reader,Writer:一个接口是Serializable. 在整个io ...