Unable to compile class for JSP
https://www.cnblogs.com/mthoutai/p/7136304.html
錯誤提示:
The return type is incompatible with JspSourceDependent.getDependants()
Stacktrace:] with root cause
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: [33] in the generated java file: [/home/programs/apache-tomcat-PowerSupervise/work/Catalina/localhost/PowerSupervise/org/apache/jsp/reportPages/jspReport/fileRecordReport_jsp.java]
大致就是生成的JSP相應的java文件33行報錯,解析錯誤。找到相應的java文件裏相應代碼。例如以下:
解決辦法:
找到沖突jar包,刪除或重命名即可。
我刪除的是WEB-INF/lib/jasper-runtime.jar
-------------------------------------------原文---------------------------------------
大部分原因是因為這個JspSourceDependent類沖突引起的,只是找遍全部WEB-INF/lib和tomcat下的lib以及jre中下有關jsp解析的jar包,除tomcat的lib下。沒發現有類似版本號不同反復的jar包。於是在集成開發環境ECLIPSE中打入這個類。竟然能找到這個類。提示自己主動引入後,例如以下:
然後ctrl鍵盤按住。點擊這個類。最終找到了這個類所在的jar包及路徑了,例如以下:
竟然在jetty-server-8.1.8.jar裏也有此類,怪不得呢,於是刪除了此類,報表恢復正常了。
網上也例如以下情況出現此問題:
1、jsper-runtime.jar存在沖突,刪除就可以。
2、在升級tomcat後的項目中,後出現此問題。解決的方法是新建jsp文件。把老jsp文件的內容copy過來。就攻克了。只是這是網友的解決方法,針對這樣的情況,個人之見,根本原因還是jar包版本號與舊的已生成的_jsp.java類中的類存在沖突。僅僅需把tomcat的work文件夾下的東西刪除重新啟動tomcat用新的環境又一次解析JSP就可以。
JasperException問題與解決的方法。the return type is incompatible with,JspSourceDependent.getDependants(),jsper.jar沖突,JSP解析異常
Unable to compile class for JSP