异常:
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.
答案 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