org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 16 in the jsp file: /monday-01.jsp

发布时间 2023-05-27 11:38:50作者: YE-
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 16 in the jsp file: /monday-01.jsp
System.out cannot be resolved to a type
13: <body>
14: <%
15: String a = request.getParameter("uname");
16:   System.out.println("uname");
17: 
18: %>
19: 


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:468)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

原因:问题的根本在于tomcat7中对java编译采用的是eclipse的ecj,而在最新版本的JDK17中,这个编译jar包已经过时了。

解决方法:方案一:tomcat7使用jsp,将JDK版本降到JDK1.7,即可解决版本冲突问题

方案二:将tomcat7升级到tomcat10,可以在JDK17环境下正常编译*_jsp文件