我想在tomcat 6.0中运行一个jsp项目。但是我收到以下错误

时间:2015-10-02 10:46:25

标签: java apache jsp tomcat servlets

异常:

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:         }

Stacktrace:

    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.

1 个答案:

答案 0 :(得分:0)

  

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