tomcat web工程 jar包冲突解决方法

目前在部署工程时,遇到了一个问题,报错信息如下:

See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

经检测,是工程包中含有javax.servlet包的JAR包,造成与Tomcat自身的servlet-api.jar的冲突。

1.问题的原因:

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

2.解决方法

如果jar包只包含javax.servlet,则可以直接删除。

如果不是则需要进行如下处理:

将javax.servlet从该项目中删除,此时工程肯定会少依赖关系,java文件报错。此时呢,在工程外在建一个包,将完整的包放到里面

通过myeclipse的properties-->java build path-->add External jars 添加进来即可解决问题。

该方法数与笨方法,还有比较好的方法,待大家补充及后续发掘

时间: 2024-11-29 04:59:01

tomcat web工程 jar包冲突解决方法的相关文章

Maven工程jar包冲突解决方法

maven确实是一个好用的项目管理工具,相比较传统的JAVAIDE,不需要你提前下载依赖包,只需要在配置文件中添加即可自动下载.但由于maven的传递性依赖特性,maven在下载某一个依赖包时,会连同这个jar包的依赖包一起下载下来,由此也带来了jar包冲突的问题. 解决方法: 1.查看依赖关系: 如果你是使用eclipse来做开发,你可以右键点击你的工程,然后选在run as -> maven build,在Goals的框里填入dependency:tree,回车运行即可. 如果不是,使用命令

Jar包冲突解决方法

前言 对于Jar包冲突问题,我们开发人员经常都会有碰到,当我们使用一些jar包中的类.方法等,或者有时遇到一些日志系统的问题(参考另一篇文章Jar包冲突导致的日志问题),我们会遇到ClassNotFoundException,NoSuchFieldException,NoSuchMethodException 之类的运行时异常,从经验上我们就会判断,Jar包冲突了.解决Jar包冲突问题,每个人都有每个人的方法,这里我介绍一下我的方法,供大家参考. 处理方法 当遇到jar包冲突时,我们首先确定是哪

java jar包冲突解决方法

jar包冲突几乎是每个java程序员都会遇到的问题,而且特别是大工程,jar包各种依赖,经常性发生包冲突.通常会报这样几个运行时异常: java.lang.NoSuchMehodError java.lang.NoClassDefFoundError 这类问题十有八九都是jar包冲突引起,要解决jar包冲突问题,我们先了解下导致这个冲突的原因. 导致jar包冲突的原因 1.mvn的传递依赖特性:mvn编译打包除了会引入直接申明的依赖,还会引入间接申明的依赖 2.mvn的依赖仲裁规则: 1). 按

SSH整合时jar包冲突解决的注意事项

在SSH项目整合的时候,要注意jar包冲突. 这里的原则是: 1,无依赖关系的舍低取高. 2.有依赖关系的取高. 怎么排查是否有冲突,在服务器项目的lib下查看是否有重名的. 注意:每次重新导入包以后要把服务器中的项目删掉再发布.

java 包冲突解决方法

1.诊断包冲突 java.lang.NoSuchMethodError: org.apache.commons.io.output.DeferredFileOutputStream.<init>(ILjava/lang/String;Ljava/lang/String;Ljava/io/File;)V 2.解决 2.1 可见的依赖冲突 在eclipse中打开工程,在pom文件的dependency hierarchy中,搜冲突的包commons-io,查看各依赖包的依赖信息.包有依赖冲突的话,

aven依赖分析,jar包冲突解决利器intellij idea插件Maven Helper强烈建议安装

还在为解决jar包依赖冲突痛苦??? 那就好好看看下面的文章吧! 目前大多公司的java项目都以Maven项目为主,最近也通过Maven Helper解决了一些生产问题,在这里分享一下安装和基本使用方法! 安装方法: File-Settings-Plugins 点击“Browse repositories” 在弹出搜索框输入"maven helper" 点击“Install”,安装完成后重启idea 基本使用: idea启动后,打开要分析的pom.xml,在编辑器的左下方会看到多出一行

Android Studio使用远程依赖时下载不了jar包的解决方法

使用AS很大的一个好处就是可以使用在线jar包,只需在引用jar包的时候在版本后加上+,比如: compile 'com.facebook.fresco:fresco:0.1.0+' 这样不用在jar包作者更新后再次手动更新jar包获取最新版本. 但是很多人包括我自己在不了解gradle使用的情况下,引用在线jar包时怎么都下载不下来,例如提示: 这尼马是没FQ么,不对,goagent更新AS都没问题,排除了墙的问题后一时想不到问题点在哪了. 早上请教了下同样出了此问题的基友,他解决了,他真的解

Maven jar包冲突解决办法

下面两个配置有简洁的包依赖冲突: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId

sun.misc.BASE64Encoder找不到jar包的解决方法

1.右键项目->属性->java bulid path->jre System Library->access rules->resolution选择accessible,下面填上** 点击确定即可!!! 2. 在MyEclipse中编写Java代码时,用到了BASE64Decoder,import sun.misc.BASE64Decoder:可是Eclipse提示: Access restriction: The type BASE64Decoder is not acc