【发布时间】:2015-02-10 20:02:25
【问题描述】:
这个运行时错误发生在我的 spring mvc 项目中。目标服务器apache tomcat 8.0。你能帮我解决这个问题吗:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: [31] in the generated java file: [C:\Users\mehrdad\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\CPNC\org\apache\jsp\pages\home_jsp.java]
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
An error occurred at line: [42] in the generated java file: [C:\Users\mehrdad\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\CPNC\org\apache\jsp\pages\home_jsp.java]
The method getDispatcherType() is undefined for the type HttpServletRequest
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:199)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
这是 home.jsp:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Home page</title>
</head>
<body>
<h1>Home page</h1>
<p>This is Home page. It's available for all users.<br/>
<a href="${pageContext.request.contextPath}/sec/moderation.html">Moderation page</a><br/>
<a href="${pageContext.request.contextPath}/admin/first.html">First Admin page</a><br/>
<a href="${pageContext.request.contextPath}/admin/second.html">Second Admin page</a><br/>
</p>
</body>
</html>
【问题讨论】:
-
这可能是类路径中存在多个(冲突)servlet api jar 的问题。检查您的 lib 目录一次,并确保您使用的是 3+ api 版本。
-
你能列出你战争中的 jar 文件吗?
-
这张图片显示了我的 jar 文件:8pic.ir/images/uo6ua85eszihkrgx315x.jpg
-
一般来说,使用
JSTL 标记比手动预置上下文根要好。但是,除了已经建议的错误之外,没有任何关于错误的线索。 -
@MehrdadAbdolghafari 最好在问题本身中将依赖项列为文本。可能对阅读您的问题的人有用。
标签: java jsp spring-mvc