Springboot Error:No Java compiler available for configuration options compilerClassName

本文解析了在SpringBoot项目中使用JSP时遇到的java.lang.IllegalStateException异常,详细介绍了错误产生的原因,主要是由于tomcat-embed-jasper依赖及其ecj.jar子依赖损坏或下载不全导致。文章提供了检查本地Maven仓库中相关依赖包并重新下载的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.lang.IllegalStateException: No Java compiler available for configuration options compilerClassName: [null] and comp
iler: [null]
        at org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:231)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:578)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:716)

遇到上面springboot转发jsp时这个问题。可能是为spring-boot提供jsp支持的依赖tomcat-embed-jasper.jar及其依赖的包坏了。

我遇到原因是下载tomcat-embed-jasper依赖包过程中中断,导致ecj.jar下载不完全,坏包了。

		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
		</dependency>
  <!--tomcat-embed-jasper的依赖包-->
  <groupId>org.eclipse.jdt</groupId>
  <artifactId>ecj</artifactId>
  <version>3.12.3</version>

解决方法,从本地maven库中找到相关包并删除,重新下载。至于它的依赖包可以从pom的Dependency Hierarchy中查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值