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