1. 程式人生 > >專案部署到Tomat報異常:jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending ...

專案部署到Tomat報異常:jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending ...

專案部署到Tomcat報這樣的異常:

Java程式碼  收藏程式碼
  1. 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包時會進行校驗。

解決方案:

一、針對第一種情況,不要將servlet-api.jar放到WEB-INF/lib下,因為專案部署時根本不需要這個jar包,Tomcat已經提供了。當時如果工程不匯入此jar包,程式碼會報錯,你可以將servlet-api.jar放在工程下的一個專門的目錄(如lib)下面,然後通過Eclipse匯入到工程中即可。

二、針對第二種情況,暫時沒有想到簡單的解決辦法,在我的專案中由於某種特殊的需求,weblogic.jar是通過自定義的類載入器載入的,而不是由Tomcat的