启动tomcat 之后就出现了该错误,
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:674)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:547)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1742)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1242)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(XMLScanner.java:756)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(XMLDocumentFragmentScannerImpl.java:1034) 从网上查了下据说是xml的问题 有这样说的 “XML内容实际是以UTF-8编码的,因此造成了包括中文字符的XML文件无法正常阅读,将编码格式改成“GB2312”后就可以正常解析了。<?xml   version="1.0"   encoding="GB2312"?> ” 下面贴上我的xml<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <resource-ref>
   <description>addressbook DataSource</description>
   <res-ref-name>jdbc/addressbook</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
  </resource-ref>
  
  <filter>
   <filter-name>fristfilter</filter-name>
   <filter-class>y2javaee.xmall.common.CommonFilter</filter-class>  
   <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
   </init-param>
  </filter>
  
  <filter-mapping>
   <filter-name>fristfilter</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>y2javaee.xmall.servlet.LoginServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>SelectServlet</servlet-name>
    <servlet-class>y2javaee.xmall.servlet.SelectServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>SelectServlet</servlet-name>
    <url-pattern>/SelectServlet</url-pattern>
  </servlet-mapping>
  
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

解决方案 »

  1.   

    尽管我把UTF-8中的UTF-8 改成了GBK还是不行
      

  2.   

    二楼的解释好长啊  编码问题原因应该是:操作系统编码为GBK,而xml指定为utf-8,SAXReader使用系统的默认编码GBK,所以存在需要转换编码的问题,也就自然会出现乱码了!  如这里所说我的 和上面我发的代码  xml 中我的编译方式的确是UTF-8 但是这样一个项目 在几天前运行还是很正常的 (最近没动这个项目) 但是倒好  什么还没碰呢 只是启动了下Tomcat 就报错了  应该是tomcat 中出
    了什么问题
      

  3.   

    解决了 就是因为我在Tomcat 下Context.xml中的<!---> 里面写了一个中文 虽然是被注释的 但仍然被编译了...