我用MYELIPSE写了个项目
之前还好好的,可是一会就出了个问题
页面报错是这样的
org.apache.jasper.JasperException: Unable to compile class for JSP
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:574)
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)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause 
java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.
org.apache.jasper.xmlparser.UTF8Reader.invalidByte(UTF8Reader.java:621)
org.apache.jasper.xmlparser.UTF8Reader.read(UTF8Reader.java:310)
org.apache.jasper.xmlparser.XMLEncodingDetector.load(XMLEncodingDetector.java:1012)
org.apache.jasper.xmlparser.XMLEncodingDetector.skipString(XMLEncodingDetector.java:963)
org.apache.jasper.xmlparser.XMLEncodingDetector.scanXMLDecl(XMLEncodingDetector.java:1221)
org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:123)
org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:111)
org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:309)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:173)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
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)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

解决方案 »

  1.   

    java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence
    编码不一致,好像我也遇到过,没管就解决了
      

  2.   

    root cause 
    java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence. 
    org.apache.jasper.xmlparser.UTF8Reader.invalidByte(UTF8Reader.java:621) 
    org.apache.jasper.xmlparser.UTF8Reader.read(UTF8Reader.java:310) 
    org.apache.jasper.xmlparser.XMLEncodingDetector.load(XMLEncodingDetector.java:1012) 
    错误的原因就是编码问题应该是你的UTF8Reader.java:621错误楼主坚持一下
    或者把代码贴出来看看比如:
    static InputStream String2InputStream(String str) throws Exception{
         ByteArrayInputStream stream = new ByteArrayInputStream()
         return stream;
     }
    需要改为
    static InputStream String2InputStream(String str) throws Exception{
         ByteArrayInputStream stream = new ByteArrayInputStream(str.getBytes("utf-8"));
         return stream;
     }
    错误的原因是因为你的默认编码和你设置的utf-8格式编码不一致造成的
      

  3.   

    如同楼上说的...说是不能编译..对进行编译无可奈何。。是编译你的一个jsp的时候报的错。应该是编码集那里不一致造成的。
    不知道楼主的是那个jsp报的错。。帖出来看看,
      

  4.   

    估计楼主的文件在外边使用其它工具编辑过(比如:ultraedit)导致文件头被破坏,无法正确识别为UTF-8。可以考虑将此文件备份,然后重新再MyEclipse中建立同名文件,将源文件的内容拷贝过去即可(拷内容,别拷文件)。