改了部分代碼,執行時突然遇到如題異常,百思不得其解,明明沒有動JSP和Servlet,怎麼突然報這個錯...
網上找不到解決辦法,也沒有什麼相關資料。後來只得手工排查,單獨訪問JSP頁面沒有問題,一旦串連上Servlet就出事,也不知道是什麼東西造成這個問題。由於報的是EL的錯,起先以為是JSTL版本的問題,不過想想剛才還好好地麼,不可能是這個原因。後來根據訪問的URL在頁面裡把相應的代碼刪除,恢複正常了。重複幾次之後找到了出問題的地方,報錯如下:
exception
org.apache.jasper.JasperException: Exception in JSP: /inc/pagination.jsp:52: <%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>3: <!-- 底部分頁 -->4: <div align=center style="font-size:16px;padding-top:5px;padding-bottom:8px;" >5: <pg:pager url="list.do"items="${requestScope['pe.pager'].maxElements}"6: maxPageItems="${requestScope['pe.pager'].pageSize}" ">7: <pg:index>8: <pg:first unless="current"><a href="${pageUrl}&p=${pageNumber......
root cause
java.lang.ArithmeticException: / by zerocom.jsptags.navigation.pager.PagerTag.pageNumber(PagerTag.java:334)com.jsptags.navigation.pager.PagerTag.doStartTag(PagerTag.java:372)org.apache.jsp.list_jsp._jspService(list_jsp.java:626)......
看來是分頁中的JSP片段,開啟一看,這才想起剛才是修改了Servlet的映射路徑,導致與<pg:pager url="list.do"中的不符合了,分頁組件找不到Servlet了
但是這並不問題的真正所在,改完之後,發現即使將分頁代碼刪除,問題依舊。最後經過排查,錯誤定位到了代碼中使用的<c:forEach>的部分,只要不使用便沒問題。調了一個晚上沒有效果,java.lang.AbstractMethodError像個幽靈一樣不肯離去,最後一氣之下,建立個工程重新來做,一段代碼一段代碼的從原工程裡拷過來。這次用的tomcat6,最後竟然沒問題了。換至tomcat5.5.26下面,問題依舊,看來貌似是tomcat版本的問題啊。目前依然未找到真正的原因,只是在tomcat6下開發,一切正常。