我不能让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>
发布于 2014-01-24 09:10:41
您必须使用支持JDK 8的最新版本的tomcat。
我可以确认apache-tomcat-7.0.35不支持JDK8,我也可以确认apache-tomcat-7.0.50支持JDK8。
发布于 2017-03-17 00:04:02
如果你使用的是maven,那么你可以将tomcat7-maven-plugin添加到你的pom.xml中,它就会运行的很好。此插件将在支持JDK 1.8的Tomcat servlet容器版本7.0.47上运行该项目。
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- Include context file for Datasource configuration -->
<contextFile>./src/main/webapp/META-INF/context.xml</contextFile>
<port>8080</port>
</configuration>
<dependencies>
<!-- Include jdbc driver dependency if using datasource (in my case oracle) -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
希望这是有用的!谢谢
发布于 2014-03-31 19:10:31
因为我们是在Ubuntu12.04LTS上运行的,最新的官方支持的tomcat7包是7.0.26,所以我们不能轻易地更新整个tomcat。
为了测试jdk8,我能够通过更改一些jars来解决这个问题,而不是最新的7.0.*版本。
我将jasper.jar、jasper-el和tomcat-util切换到版本7.0.53,并添加了ecj-4.3.1.jar。这会使应用程序重新联机。
但是..。另外,我用这个改变了打包的内容,所以也许下载整个tomcat并将其作为乱七八糟的包使用会更好。因此,请仅将其视为一个非常肮脏的快招或变通方法。
https://stackoverflow.com/questions/19243458
复制相似问题