使用TomEE Embedded和Java 8进行JSP编译错误

尝试访问在TomEE Embedded中运行的基本JSP文件时,出现内部服务器错误,并显示以下错误消息:

org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [1] in the generated java file: [/tmp/apache-tomee814337484264703144/work/Tomcat/localhost/sample/org/apache/jsp/index_jsp.java] The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files 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:485) org.apache.jasper.compiler.Compiler.compile(Compiler.java:379) org.apache.jasper.compiler.Compiler.compile(Compiler.java:354) org.apache.jasper.compiler.Compiler.compile(Compiler.java:341) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:662) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 

我正在使用Java 8和(当前)最新版本的TomEE Embedded(1.7.2)。 这些是我的POM文件中的依赖项:

   org.apache.openejb tomee-embedded 1.7.2   

该问题与我的JSP文件的内容无关,因为它基本上是空的:

     Sample   

Sample

有没有人遇到过同样的问题? 有没有人有解决方法?

经过一些研究和实验,我自己想出来了。

以防有人遇到同样的问题:似乎问题与TomEE用于编译JSP文件的Eclipse Java编译器(3.5.2)的版本有关。 由于Java 8中的类格式发生了一些变化,因此旧版本的编译器似乎感到困惑。

我已经引入了更新版本的Eclipse Java编译器(4.4.2)并从TomEE中排除了旧版本,现在一切都按预期工作:

   org.apache.openejb tomee-embedded 1.7.2   org.eclipse.jdt.core.compiler ecj     org.eclipse.jdt.core.compiler ecj 4.4.2