最近在学Acegi,就试着运行一个小例子,不成想抛出下面的异常
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 23 in the generated java file
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
Stacktrace:
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:423)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
上网搜,发现不少人有这个问题,但都没有解决办法。后来想到可能和tomcat6有关,因为我在工程的lib中添加了很多包(一堆什么Spring
依赖),所以把他们一删JSP就不抛异常了。我估计是,工程中和tomcat6 lib中重复的包在加载时是先被加载(也就是tomcat6中相同的包没
有被加载),而工程中的包版本要比tomcat6中的低,造成上面的异常。我对照着tomcat中包,发现工程中出现诸如catalina.jar、jsp-api.jar
、servlet-api.jar等这样的重复包,把它们从工程中删了就应该行了(对于上面的异常,原因应该是包jsp-api.jar)。看来不是什么包都可
以一股脑往工程里加阿。
分享到:
相关推荐
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory;java.lang.OutOfMemoryError: PermGen space;tomcat 5.5 的The Apache Tomcat Native library which allows optimal ...
- **The Tomcat Servlet Container**: Tomcat is a popular open-source servlet container used for deploying web applications. It supports the latest versions of the Java Servlet, JavaServer Pages (JSP), ...
The doFilter method of the Filter is called by the container each time a request/response pair is passed through the chain due to a client request for a resource at the end of the chain. doGet...
首先,`ServletContext`接口是每个Servlet容器(如Tomcat)为每个Web应用程序创建的。它是Servlet与服务器之间通信的重要桥梁。通过`ServletContext`,开发者可以实现以下功能: 1. **共享数据**:你可以使用`...
`ServletContext`是Java Web开发中的一个关键概念,它是Servlet API的一部分,主要用于在多个Servlet之间共享信息。在Myeclipse这样的集成开发环境中,我们经常会用到`ServletContext`来增强应用程序的功能和交互性...
Ssh获取ServletContext 只需要更改struts-config action中的type就可以了ru :type="com.uo.spring.SpringDelegatingActionProxy" 大家有什么疑问可以直接去我的blog查看...《[正解]Ssh获取ServletContext》
If we declare method inside declaration directive, then the method is applicable in the whole page. Passing Array method Array is a collection of similar data type. It is one of the simplest data ...
首先,`ServletContext`是每个Web应用程序启动时由容器(如Tomcat)创建的。它是一个全局的共享对象,可以通过`Servlet`的`getServletContext()`方法获取。例如: ```java ServletContext context = ...
ServletConfig 与 ServletContext 的关系 在 Servlet 编程中,ServletConfig 和 ServletContext 两个对象经常被混淆,然而它们有着截然不同的作用域和用途。 首先, lets 看看 ServletConfig 对象。ServletConfig ...
1. **Servlet生命周期**:Tomcat如何加载、初始化、服务、销毁Servlet,以及ServletConfig和ServletContext的角色。 2. **线程池管理**:Tomcat如何使用Executor(`Executor`接口和`ThreadPoolExecutor`实现)来...
`servletContext`是Servlet API中的一个关键概念,代表了整个Web应用程序的上下文。在这个上下文中,Servlet可以共享信息,如全局属性、监听器等。下面将详细讨论`servletContext`及其在实际开发中的应用。 一、...
ServletContext 读取 web 应用中的资源文件 在 Web 应用程序中,我们经常需要读取某些资源文件,如配置文件、图片等等。为了实现这一点,ServletContext 接口提供了一些方法来读取 web 应用中的资源文件,这些方法...
当应用运行时,Tomcat会为每个应用创建一个独立的ServletContext对象,这个对象在整个应用生命周期内是唯一的,被所有组件共享。这种设计确保了不同Web应用之间的隔离性,同时也提供了共享资源的能力,如session、...
《深入理解Tomcat 6.0 API:JavaDoc解析与应用》 Tomcat 6.0作为Apache软件基金会开发的一款开源且高性能的Servlet容器,其API文档是开发者理解和使用的关键资源。由于Tomcat 6.0版本的API文档在发布时并未直接包含...
它实现了Servlet和ServletContext接口,是Tomcat的核心组件。 2. **Jasper**:Jasper是Tomcat中的JSP引擎,用于将JSP页面转换为Servlet源码,并编译成可执行的Java类。 3. ** Coyote**:Coyote是Tomcat的...
6. 在 Tomcat 下使用 JNI 时我遇到了类装载器的问题 在 Tomcat 中使用 JNI 时,需要了解类装载器的问题。不能将本地库或者他们的 JNI 接口放在应用程序的 WEB-INF/lib 或者 WEB-INF/classes 目录下,否则可能会导致...
Tomcat通过监听特定的ServletContext事件来管理这些阶段。 五、JSP编译与执行 Jasper负责将JSP文件编译为Java源代码,再编译成字节码,最后由Java虚拟机执行。这个过程确保了JSP的动态特性。 六、安全性与会话管理...
Tomcat 7.0.56 是一个广泛应用的开源Java Servlet容器,由Apache软件基金会维护。这个接口说明文档是开发者理解和使用Tomcat进行Web应用程序开发的重要参考资料。它详细阐述了Tomcat内部的工作机制、API接口以及如何...
- 当Tomcat或其他Web服务器启动并加载Web应用时,会为该应用创建一个唯一的`ServletContext`实例。这个实例在Web应用的整个生命周期内都是存在的,直到Web应用被卸载。 - `ServletContext`提供了存储和获取全局...