1、复制粘贴网上代码导致的bug:
Tomcat+jsp+servlet的案例学习,http://developer.51cto.com/art/200902/108709_all.htm过程中,
一个bug害我调了一下午,即新建一个TestBean.jsp文件时,直接复制了内容,导致"<>"符号不对,通过http://localhost:8080/myapp/TestBean.jsp访问时错误提示:
HTTP Status 500 - org.apache.jasper.JasperException: Unable to compile class for JSP
type Exception report
message org.apache.jasper.JasperException: Unable to compile class for JSP
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to compile class for JSP org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:378) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
org.apache.jasper.JasperException: Unable to compile class for JSP org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:672) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence. org.apache.jasper.xmlparser.UTF8Reader.invalidByte(UTF8Reader.java:621) org.apache.jasper.xmlparser.UTF8Reader.read(UTF8Reader.java:486) org.apache.jasper.xmlparser.XMLEncodingDetector.load(XMLEncodingDetector.java:1017) org.apache.jasper.xmlparser.XMLEncodingDetector.skipString(XMLEncodingDetector.java:968) org.apache.jasper.xmlparser.XMLEncodingDetector.scanXMLDecl(XMLEncodingDetector.java:1224) org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:124) org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:112) org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:337) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:190) org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:119) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:193) org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.55 logs.
查阅了大量资料,都是在说环境变量配置不对,或Tomcat找不到tools.jar等,实际 上只要把尖括号<>手动输入即对;