无法为JSP编译类:无法解析类型java.util.Map $ Entry。从所需的.class

我无法获取tomcat7来编译jsps。直到运行示例servlet一切正常,并且服务已启动并正在运行。我正在运行oracle java 8。


谁能指出我正确的方向?


这是堆栈跟踪:


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)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.35 logs.

该代码看起来像这样,它是tomcat7的示例代码,所以我想这是正确的。


<%@ taglib prefix="mytag" uri="/WEB-INF/jsp2/jsp2-example-taglib.tld" %>

<html>

<head>

  <title>JSP 2.0 Examples - Hello World SimpleTag Handler</title>

</head>

<body>

<h1>JSP 2.0 Examples - Hello World SimpleTag Handler</h1>

<hr>

<p>This tag handler simply echos "Hello, World!"  It's an example of

a very basic SimpleTag handler with no body.</p>

<br>

<b><u>Result:</u></b>

<mytag:helloWorld/>

</body>

</html>


繁星点点滴滴
浏览 913回答 3
3回答

ITMISS

您必须使用支持JDK 8的最新版本的tomcat。我可以确认apache-tomcat-7.0.35不支持JDK8,也可以确认apache-tomcat-7.0.50不支持JDK8。

慕姐4208626

JDK8的类格式已更改,这就是Tomcat无法编译JSP的原因。尝试获取更高版本的Tomcat。我最近有同样的问题。这是Tomcat中的错误,或者说,JDK 8的类文件格式与JDK8之前的版本略有不同。这会导致不一致,并且Tomcat无法在JDK8中编译JSP。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java