This is what I got on the browser screen when I try to run the JSP file.
The method getJspApplicationContext(ServletContext) is undefined for the type
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet.version}</version>
<scope>provided</scope>
</dependency>
also fixes the issues
For Maven, I also had to add the jsp-api dependency as a provided jar like this: (Some other dependency was pulling it in, I could never figure out which one, but this fixed it up)
<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>
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
That method was introduced in JSP 2.1. There are 3 causes for this problem:
You're using an too old version of the JSP container (you need for example at least Tomcat 6.0).
You've declared the wrong Servlet version in web.xml
. JSP 2.1 goes hand in hand with Servlet 2.5, so your web.xml
should at least be declared as per the Servlet 2.5 spec (you still need a Servlet 2.5 / JSP 2.1 capable servletcontainer for that).
You've duplicated older versioned appserver-specific libraries into webapp's /WEB-INF/lib
, like servlet-api.jar
, jsp-api.jar
and so on. You should never do that. It will only result in classloading collisions. Get rid of them in your webproject and leave/untouch them there in the appserver.
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
This can also happen when your project requires a reference to a server runtime:
Note: This error can also happen for ANT builds, and for that case, you need to reference a target runtime in your ANT build.xml file... The following references a local tomcat installation, and uses its "lib" folders when doing the compile:
<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>
Snagged from this url: