方法getJspApplicationContext(ServletContext)对于JspFactorytypes是未定义的
当我尝试运行JSP文件时,这就是浏览器屏幕上的内容。
方法getJspApplicationContext(ServletContext)对于JspFactorytypes是未定义的
堆栈跟踪:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler。 java:439)org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)org.apache.jasper.compiler.Compiler。编译(Compiler.java:299)org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)org.apache.jasper.servlet。 JspServlet.serviceJspFile(JspServlet.java:342)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
当我运行它时,jasperexception在Tomcat窗口上抛出。
方法getJspApplicationContext(ServletContext)对于JspFactorytypes是未定义的
该方法在JSP 2.1中引入。 这个问题有三个原因:
-
你正在使用一个太旧的JSP容器版本(例如你至less需要Tomcat 6.0 )。
-
你已经在
web.xml
声明了错误的Servlet版本。 JSP 2.1与Servlet 2.5结合在一起,所以你的web.xml
至less应该按照Servlet 2.5规范来声明(你仍然需要一个支持Servlet 2.5 / JSP 2.1的servlet容器)。 -
您已将旧版本的特定于应用程序的库复制到webapp的
/WEB-INF/lib
,如servlet-api.jar
,jsp-api.jar
等。 你永远不应该这样做。 这只会导致类加载冲突。 摆脱他们在你的webproject,离开/解雇他们在应用程序服务器。
<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>${servlet.version}</version> <scope>provided</scope> </dependency>
也解决了这个问题
方法getJspApplicationContext(ServletContext)对于JspFactorytypes是未定义的
当您的项目需要引用服务器运行时时,也会发生这种情况:
- 在Eclipse的“Project Explorer”中右键单击你的项目
- select“构buildpath|configuration构buildpath”
- 点击“库”选项卡
- 点击“添加库”
- select“服务器运行时”并点击“下一步”
- select“Apache Tomcat 7”,或者任何你的服务器运行时版本应该是。
注意:ANT构build也可能发生这个错误,在这种情况下,您需要在您的ANT build.xml文件中引用目标运行时…以下引用本地tomcat安装,并在执行时使用其“lib”文件夹编译:
<project name="tomcat-demo" default="compile" basedir="."> <property name="tomcat-home" value="/path/to/your/tomcat/apache-tomcat-7" /> <path id="project-classpath"> <fileset dir="WebContent/WEB-INF/lib" includes="*.jar" /> <fileset dir="${tomcat-home}/bin" includes="*.jar" /> <fileset dir="${tomcat-home}/common/lib" includes="*.jar" /> <fileset dir="${tomcat-home}/server/lib" includes="*.jar" /> </path> ... </project>
从此url中截取:
对于Maven,我还必须将jsp-api依赖项作为提供的jar添加,如下所示:(其他一些依赖项正在引入,我无法弄清楚哪一个依赖项被修复)
<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency>
- Admob实现错误
- Eclipse最近的文件
- 无法计算构建计划:插件org.apache.maven.plugins:maven-resources-plugin:2.5或其依赖项之一无法解析
- 如何更新Eclipse中的Maven仓库?
- 如何实现Eclipse的清理和构build(又名重build)?
- 在Eclipse中从项目浏览器视图中删除项目.jars
- eclipse Indigo中的“从现有源创build项目”在哪里?
- 如何使“maven-enforcer-plugin(goal”强制执行“)被m2e忽略”eclipse警告?
- 在Git / Mercurial中,我可以安全地忽略哪些Eclipse项目.metadata?