Intellij IDEA - org.apache.jasper.JasperException:无法为JSP编译类

时间:2015-01-31 16:01:04

标签: java maven tomcat servlets intellij-idea

请帮我解决这个问题。我构建了一个WAR(uising Maven)但是当我尝试在Tomcat中部署它时,我得到了一个异常:

  

org.apache.jasper.JasperException:无法为JSP编译类:
  对于类型getJspApplicationContext(ServletContext)

,方法JspFactory未定义

我在stackoverflow上找到了问题的原因 - 问题在于项目的类路径中的Servlet API和当前版本的servlet容器使用的相关库的不一致。提供的解决方案是避免将任何Servlet API相关库(servlet-api.jarjstl.jarjsp-api.jar等)添加到lib - 文件夹。我还找到了Eclipse的解决方案([How do I import the javax.servlet API in my Eclipse project?)。但我在IntellijIDEA中开发,它与Eclipse不同。在我的情况下,不可能不将servlet-api.jarjstl-${version}.jar添加到类路径中。如果我不添加它们,我就无法编译项目。如果有人可以帮我解决这个问题,我会非常感激。

1 个答案:

答案 0 :(得分:1)

使用maven时,您可以使用provided scope从战争中排除依赖关系,如下所示:

<dependencies>
    <dependency>
        <groupId>some.group.id</groupId>
        <artifactId>some-artifact-id</artifactId>
        <version>x.y.z</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

您需要为tomcat提供的所有依赖项执行此操作。


Intellij Idea也提供了类似的范围机制,请参阅文档here