Unable to compile class for JSP的一次解决方法

引发这次问题的,主要是对服务器Tomcat版本进行了升级(Tomcat7最新版本7.0.96),而用原来的旧Tomcat跑是没有问题的

上图,前端错误页面:

org.apache.jasper.JasperException: Unable to compile class for JSP
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:675)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    ......

顺便上一下后台日志:

九月 21, 2019 3:47:42 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [qc] in context with path [/qc] threw exception [Unable to compile class for JSP] with root cause
java.lang.IllegalArgumentException: Page directive: invalid value for import
	at org.apache.jasper.compiler.Node$PageDirective.validateImport(Node.java:628)
	at org.apache.jasper.compiler.Node$PageDirective.addImport(Node.java:609)
	at org.apache.jasper.compiler.Parser.parsePageDirective(Parser.java:352)
	at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:473)
	at org.apache.jasper.compiler.Parser.parseFileDirectives(Parser.java:1773)

网上查了挺多,用了以下两种方法后解决:

1.jar包冲突

(注意,此处引用自:https://www.cnblogs.com/qiongmiaoer/p/3552708.html

问题分析:

  可能是你项目中的诸如:catalina.jar、jsp-api.jar、servlet-api.jar、javax.servlet.jar、javax.servlet.jsp.jar等包和应用服务器(JBoss/Tomcat等)中的包重复且比其版本低,应用服务器在启动时会优先加载项目中的包,这样就导致和应用服务器中的其它包不匹配。可把重复的包从项目中删除,或将应用服务器下的这些包拷贝到项目中,重启服务即可。

解决方案 :    

在tomcat工程文件夹路径中,删除掉两个文件即可,尝试此种方法解决了问题。

删除WEB工程Lib目录中的jsp-api.jar、servlet-api.jar,重新启动程序

 

2.JSP页面编写的import不规范

如我这里就是以下代码引起的:

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    import="com.linkcm.qc.syn.utils.DateUtil;"
    pageEncoding="UTF-8"%>

没错,就仅仅只是  import="com.linkcm.qc.syn.utils.DateUtil;"   中,最后面多了一个“;”号,删除后页面恢复正常

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值