Java异常: "2 字节的 UTF-8 序列的字节 2 无效。"的解决方案

标签: Java tomcat xml utf-8 异常
383人阅读 评论(0) 收藏 举报
分类:

在启动Tomcat时, 出现以下的异常:

七月 13, 2017 6:49:42 下午 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.2.10 using APR version 1.5.2.
七月 13, 2017 6:49:42 下午 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
七月 13, 2017 6:49:42 下午 org.apache.catalina.startup.Catalina load
警告: Catalina.start using conf/server.xml: 
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。
	at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1685)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
七月 13, 2017 6:49:42 下午 org.apache.catalina.startup.Catalina load
警告: Catalina.start using conf/server.xml: 
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。
	at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1685)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:582)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
七月 13, 2017 6:49:42 下午 org.apache.catalina.startup.Catalina start
严重: Cannot start server. Server instance is not configured.


如下, 以下问题肯定出现在Tomcat目录下的server.xml文件中:


话不多说:

解决方案(推荐第一种):

1. 仔细查看Tomcat安装目录下的server.xml文件(本人安装路径为: D:\apache-tomcat-6.0.48\conf\server.xml), 将里面可能出现的中文注释全部删除掉;


2. 将原xml文件首行: <?xml version="1.0" encoding="UTF-8" ?>

修改为

<?xml version="1.0" encoding="GBK"?>即可.


总结思考:

在遇到问题时, 千万不要怕! 因果循环, 任何问题出现, 一定有其发生的原因!

解决问题的思路,远比解决问题的手段更重要。

尤其, 遇到这样的问题时, 首先, 我们就要认真地看报错信息, 寻找问题发生的根本所在, 一些英文信息没有那么可怕,

同时也可以借助翻译软件来帮忙, 然后再是仔细想想自己之前做过什么操作, 是什么时间节点后出现这个问题,

如果实现不行, 就借助搜索引擎! 当然, 自己在搜索的过程中, 也一定要思考, 如"UTF-8 ", "字节"等等信息, 我们就可以考虑到, 有可能是编码的问题!


个人博客:(一个正在认真学习Java的大二学生)
博客地址



查看评论

【其它】xml中 字节的UTF-8序列的字节 无效

如题所示,今天遇到这个报错的稳态
  • zhenweiyu
  • zhenweiyu
  • 2014-05-17 13:40:14
  • 934

Tomcat——2 字节的 UTF-8 序列的字节 2 无效

早上启动tomcat失败,控制台一闪而过,打开catalina的log发现错误指向了conf/server.xml,报错信息如下:  --------------------------  警告:...
  • zwj1030711290
  • zwj1030711290
  • 2015-07-02 14:59:16
  • 4783

tomcat启动项目异常: 2 字节的 UTF-8 序列的字节 2 无效。

严重: Servlet.service() for servlet [jsp] in context with path [/test] threw exception [org.apache.jas...
  • saindy5828
  • saindy5828
  • 2016-09-18 14:30:28
  • 1119

异常: 2 字节的 UTF-8 序列的字节 2 无效。

详细异常:十二月 08, 2015 7:16:55 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.servic...
  • u012116457
  • u012116457
  • 2015-12-09 12:47:07
  • 11746

2 字节的 UTF-8 序列的字节 2 无效

用配置文件启动项目时,由于配置文件项目路径里含有中文名称,所以报这种错误。 修改配置文件中的encoding 为gbk就行了...
  • qq_29123825
  • qq_29123825
  • 2016-03-14 23:13:11
  • 441

Java异常 2字节的UTF-8序列的字节2无效

最近在做微信支付的项目,测试时在ide中测试通过,但是上线时tomcat启动,报错2字节的UTF-8序列的字节2无效,当时第一反应是组装微信xml报文的问题,上网查了下资料,果然是因为xml编码问题,...
  • dkbnull
  • dkbnull
  • 2017-05-18 21:39:36
  • 1236

异常:org.dom4j.DocumentException: 2字节的UTF-8序列的2无效

package youling.studio; import org.dom4j.Document; import org.dom4j.DocumentException; import...
  • u010670689
  • u010670689
  • 2014-10-20 18:26:01
  • 4018

spring MalformedByteSequenceException:2字节的 UTF-8 序列的字节 2无效

今天 在测试一个demo 时候发生如下错误: Exception in thread "main" org.springframework.beans.factory.BeanDefinitionS...
  • taotoxht
  • taotoxht
  • 2016-12-27 19:52:32
  • 1124

3 字节的 UTF-8 序列的字节 3 无效

如上图报错 原因:xml里面这一句中文的,可能冲突了,解决办法,注释掉也没用,直接删了...
  • u013417227
  • u013417227
  • 2017-06-03 10:24:46
  • 123

MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 2 无效

pom文件中加 UTF-8 感谢:原文地址
  • hgg923
  • hgg923
  • 2016-10-13 15:54:53
  • 357
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 5万+
    积分: 1637
    排名: 3万+
    个人说明
    个人很喜欢的一句话, (摘自网络):
    时光荏苒,祝愿不要忘记曾经的初心

    本人现在是一名大二软件工程专业的学生, 每月会坚持更新, 本博客会总结, 整理, 分享个人学习的相关技术知识, 用来记录自己不断进步的历程, 当然内容会以Java为主线.

    虽然是技术博客, 但毕竟是人, 也有自己的情感, 所以, 有时也会分享一些有用的学习资源和一些学习经验和方法, 同时也会写一些其它方面上自己的感受和想法!

    或许我的博客不是写得非常好, 但每一篇文章绝对会用心写! 如果, 你发现有不足或者错误之处, 非常欢迎指出, 当然也欢迎各位小伙伴们来交流技术和学习感受.

    每天进步一点点, 共勉!
    博客专栏
    最新评论