目前在部署工程時,遇到了一個問題,報錯信息如下:
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 添加進來即可解決問題。
該方法數與笨方法,還有比較好的方法,待大家補充及后續發掘