Java tomcat无法编译jsp

Java tomcat无法编译jsp,java,jsp,tomcat,Java,Jsp,Tomcat,我似乎无法让tomcat编译它应该提供的jsp文件。它可以很好地运行.war文件和servlet。但在任何jsp页面上都会失败。我得到的印象是,它没有找到常规的java包含 我正在尝试使用此文件(或包含的任何其他jsp测试文件) 注意,Apache Tomcat/7.0.35日志中提供了根本原因的完整堆栈跟踪 日志: Tomcat 7.0.35和Java8不能很好地配合使用,所以使用最新版本的Tomcat和ECJ模块,这个错误现在已经修复 Tomcat版本7.0.50和ECJ 4.3.1(或更新

我似乎无法让tomcat编译它应该提供的jsp文件。它可以很好地运行.war文件和servlet。但在任何jsp页面上都会失败。我得到的印象是,它没有找到常规的java包含

我正在尝试使用此文件(或包含的任何其他jsp测试文件)

注意,Apache Tomcat/7.0.35日志中提供了根本原因的完整堆栈跟踪

日志:


Tomcat 7.0.35和Java8不能很好地配合使用,所以使用最新版本的Tomcat和ECJ模块,这个错误现在已经修复


Tomcat版本7.0.50和ECJ 4.3.1(或更新版本)应该可以工作。正如@AtliB在评论中提到的那样。

我刚刚遇到了一个非常类似的问题。对我来说,原来我是用一个“tomcat7”用户运行Tomcat,但“root”是许多Tomcat文件和目录的所有者。在我将“tomcat7”更改为拥有tomcat目录中的所有内容(递归)后,它开始为我工作。

对我来说,这是@AtliB提供的答案。 问题出在jar编译器中。 我通过将一个文件夹放入另一个文件夹来安装Tomcat。相同的文件名被覆盖,但版本号不是:(。所以我有多个ecj-x.x文件。Tomcat只加载它看到的第一个文件。
删除旧的文件后,我就得到了ecj-4.4.jar,它在java 8上就像一个符咒一样工作!

您是否有必需的导入(如果您使用的是list(或)arraylist等)?检查日志文件夹中的日志文件,查看是否有任何线索。添加了关于测试文件和catalina.out部分的信息。您需要任何其他日志信息吗?如果不使用任何IDE,为什么日志中会有eclipse插件详细信息?我想指出,这很可能是Tomcat 7和Java 8的问题,正如这里所解释的,这并没有提供问题的答案问题。若要评论或要求作者澄清,请在他们的帖子下方留下评论。答案是“使用最新版本的Tomcat,您遇到了一个现已修复的错误”。…无需澄清。即使使用Tomcat 7.0.52,在ubuntu 12.04上使用ubuntu 14.04包,我仍然会遇到这个错误。我正在使用Tomcat 7.0.54和Java 8我也得到了这一点,我在Java 8中使用Tomcat 7.0.54,甚至在那时也遇到了这个错误。结果证明,我在lib文件夹中有一个旧的ecj-3.7.1.jar(Tomcat使用的是编译器)(来自较旧的安装)。删除该.jar文件为我解决了这个问题(Tomcat使用的是ecj-P20140317-1600.jar)。
<%@ page  language="java" import="java.util.*" errorPage="" %>
<html>
<body>
Current Date time: <%=new java.util.Date()%>
</body>
</html>
type Exception report

message Unable to compile class for JSP:

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 1 in the generated java file
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:102)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
    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)
Oct 30, 2013 4:56:12 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/tomcat-demo] threw    exception [Unable to compile class for JSP: 

An error occurred at line: 1 in the generated java file
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

Stacktrace:] with root cause
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 1 in the generated java file
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:468)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:724)



This is the ps axf for this process.
 9277 ?        Sl     0:23 /usr/lib/jvm/java-8-oracle/bin/java -
 Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties -
 Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Dbuild.compiler=javac -
 Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -
 Djava.endorsed.dirs=/usr/share/tomcat7/endorsed -classpath 
 /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar -
 Dcatalina.base=/var/lib/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -
 Djava.io.tmpdir=/tmp/tomcat7-tomcat7-tmp org.apache.catalina.startup.Bootstrap start