The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

前端 未结 4 1027
别跟我提以往
别跟我提以往 2020-11-27 08:04

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

相关标签:
4条回答
  • 2020-11-27 08:08
    <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>servlet-api</artifactId>
       <version>${servlet.version}</version>
       <scope>provided</scope>
    </dependency> 
    

    also fixes the issues

    0 讨论(0)
  • 2020-11-27 08:14

    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>     
    
    0 讨论(0)
  • 2020-11-27 08:15

    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:

    1. You're using an too old version of the JSP container (you need for example at least Tomcat 6.0).

    2. 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).

    3. 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.

    0 讨论(0)
  • 2020-11-27 08:24

    The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

    This can also happen when your project requires a reference to a server runtime:

    • Right click on your project in Eclipse's "Project Explorer"
    • Choose "Build Path | Configure Build Path"
    • Click on the "Libraries" tab
    • Click "Add Library"
    • Select "Server Runtime" and click "Next"
    • Choose "Apache Tomcat 7", or whatever your server runtime version should be.

    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:

    0 讨论(0)
提交回复
热议问题