对于JspFactory类型,方法getJspApplicationContext(ServletContext)是未定义的

RAV*_*ADA 30 jsp tomcat

我正在开发一个使用Apache Tomcat 7的JSP项目.

在加载index.html上运行项目时没关系,但是当尝试导航到另一个页面时,它显示错误:

对于JspFactory类型,方法getJspApplicationContext(ServletContext)是未定义的

请给我一个摆脱这个的解决方案.

Bal*_*usC 75

删除任何特定jsp-api.jar于servletcontainer的库,例如在您的/WEB-INF/lib文件夹中.此异常表示您已经放置了一个容器的servletcontainer特定库,该容器仅支持Servlet 2.4/JSP 2.0或更早版本(该getJspApplicationContext()方法在Servlet 2.5/JSP 2.1中引入).这是一个重大错误.这些库不属于webapp的类路径.

也许你这样做是为了克服项目编译错误,这确实是一个非常常见的初学者的错误.这应该以不同的方式解决,您应该在项目中引用目标运行时,而不是将任意servletcontainer make/version的一些库复制到项目中.它会使您的项目与不同品牌和/或版本的servletcontainer不兼容.

也可以看看:


小智 6

如果您有maven项目,请尝试添加以下依赖项

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)