Unable to compile class for JSP
Posted 光辉飞翔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章
Message Unable to compile class for JSP
org.apache.jasper.JasperException: Unable to compile class for JSP
org.apache.jasper.JasperException: Unable to compile class for JSP: 解决办法
maven unable to compile class for jsp 解决办法
Maven项目不能编译jsp解决方法:Unable to compile class for JSP
javaweb报错org.apache.jasper.JasperException: Unable to compile class for JSP