Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to compile class for JSP: The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

I can't get tomcat7 to compile jsps. It till run the example servlets just fine and the service is up and running. I am running oracle java 8.

Can anyone point me in the right direction?

Here is the stacktrace:

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. 

The code looks like this and it's the sample code from tomcat7 so my guess is that it's correct.

<%@ 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> 
like image 820
user2130951 Avatar asked Oct 08 '13 09:10

user2130951


2 Answers

You must use a more recent version of tomcat which has support for JDK 8.

I can confirm that apache-tomcat-7.0.35 does NOT have support for JDK8, I can also confirm that apache-tomcat-7.0.50 DOES have support for JDK8.

like image 57
Brett Ryan Avatar answered Sep 19 '22 20:09

Brett Ryan


The class format of JDK8 has changed and thats the reason why Tomcat is not able to compile JSPs. Try to get a newer version of Tomcat.

I recently had the same problem. This is a bug in Tomcat, or rather, JDK 8 has a slightly different class file format than what prior-JDK8 versions had. This causes inconsistency and Tomcat is not able to compile JSPs in JDK8.

See following references:

  • Compiling JSPs with JDK 1.8 in Tomcat 8
  • compilation succeeds in java7 but fails in java8
like image 44
Aleš Avatar answered Sep 21 '22 20:09

Aleš