【问题标题】:IntelliJ IDEA 12.1.4 with Tomcat 6: Unable to load class for JSP带有 Tomcat 6 的 IntelliJ IDEA 12.1.4:无法为 JSP 加载类
【发布时间】:2013-09-12 09:05:19
【问题描述】:

我有一个具有以下目录结构的 Web 应用程序:

  my-app
    [...]
    resources
      login.jsp
    [...]
    web
      [...]
      WEB-INF
        web.xml

当我尝试在 Tomcat6 上运行应用程序时,出现以下错误:

org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:161)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
root cause

org.apache.jasper.JasperException: Unable to load class for JSP
    org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:630)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:149)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
root cause

java.lang.ClassNotFoundException: org.apache.jsp.login_jsp
    java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
    org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:628)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:149)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

我阅读了 BalusC 对similar question 的回答,他认为此错误可能是由 login.jsp 中的 Java 代码中的语法错误引起的。但有问题的文件不包含任何 Java 代码。

我该如何解决这个错误?

更新 1: 我在日志中发现以下消息:

SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /login.jsp(6,0) The absolute uri: 
http://java.sun.com/jsp/jstl/fmt cannot be resolved in either web.xml or the 
jar files deployed with this application
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
    at org.apache.jasper.compiler.Parser.processIncludeDirective(Parser.java:300)
    at org.apache.jasper.compiler.Parser.parseIncludeDirective(Parser.java:333)
    at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:442)

【问题讨论】:

    标签: java tomcat intellij-idea tomcat6


    【解决方案1】:

    我通过将 jstl-1.2.jar 文件复制到 Tomcat 的 lib 目录来修复错误。

    【讨论】:

      猜你喜欢
      • 2013-09-15
      • 2013-09-18
      • 2015-03-30
      • 1970-01-01
      • 2013-09-17
      • 2020-07-23
      • 2013-08-17
      • 2014-01-12
      • 2017-12-26
      相关资源
      最近更新 更多