1. 程式人生 > >Unable to compile class for JSP

Unable to compile class for JSP

www. end 沖突 avi cat ace powers 引入 分享

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