【问题标题】:I am trying to run a jsp project in tomcat 6.0. But I am getting the following error我正在尝试在 tomcat 6.0 中运行一个 jsp 项目。但我收到以下错误
【发布时间】:2015-10-02 10:46:24
【问题描述】:

例外:

org.apache.jasper.JasperException: Unable to compile class for JSP:

在 jsp 文件中的第 152 行发生错误:/user.jsp java.lang.CharSequence 类型无法解析。它是从所需的 .class 文件中间接引用的

 149:       int length=5;
    150:         for (int i = 0; i <= length; i++ ) {  
    151:             int pos = rand.nextInt(charset1.length()); 
    152:             sb.append(charset1.charAt(pos));  
    153:         }

堆栈跟踪:

    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
     org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
       org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
                    org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
                    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
                   org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
        org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
                org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
                     javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.

【问题讨论】:

标签: java apache jsp tomcat servlets


【解决方案1】:

Java 8 支持接口中的默认方法。在 JDK 8 中有很多 旧接口现在有新的默认方法。例如,现在在 CharSequence 我们有 chars 和 codePoints 方法。如果源级别 您的项目低于 1.8,则编译器不允许您使用 接口中的默认方法。所以它不能编译那些 直接就间接依赖于这个接口。如果我得到你的 问题对了,那么你有两个解决方案。第一个解决方案是 回滚到 JDK 7,然后您将使用旧的 CharSequence 接口 没有默认方法。第二种解决方案是设置源级别 你的项目到 1.8,那么你的编译器不会抱怨 接口中的默认方法。

参考:The type java.lang.CharSequence cannot be resolved in package declaration

【讨论】:

  • 现在我使用 JDK 7,即使它显示相同的错误。我需要重新安装tomcat吗?
  • 我已将 JAVA_HOME 系统变量路径更改为 C:\Program Files\Java\jdk1.7.0 即使它显示相同的错误
  • eclipse中的源码级别是什么? 1.8 ?
  • 我没听懂你。但我没有使用 Eclipse
猜你喜欢
  • 1970-01-01
  • 2013-08-06
  • 2017-07-18
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
相关资源
最近更新 更多