目前在部署工程时,遇到了一个问题,报错信息如下:
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 添加进来即可解决问题。
该方法数与笨方法,还有比较好的方法,待大家补充及后续发掘
本文详细介绍了在使用Tomcat部署工程时遇到的Servlet包冲突问题,解释了冲突原因,包括Tomcat加载机制导致的问题,并提供了解决方案,如删除重复的javax.servlet包或调整工程依赖配置。

1万+

被折叠的 条评论
为什么被折叠?



