目前在部署工程时,遇到了一个问题,报错信息如下:
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 添加进来即可解决问题。
该方法数与笨方法,还有比较好的方法,待大家补充及后续发掘