这两天刚刚看了博客大牛的关于Javaweb的入门教程,里面开始介绍了关于Tomcat配置虚拟主机的内容,自己照猫画虎,但是出现了启动Tomcat后闪退的问题。查看了logs中的错误日志,报错信息如下所示:
警告: Catalina.start using conf/server.xml:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。
上网查看了别人的博客,折腾了好久,找到类似的一个问题以及解答,链接给出:http://tjmljw.iteye.com/blog/1500370
别人主要出现的问题是:TonCat的配置文件server.xml不支持中文注释,要想解决这个问题将配置文件中的encoding="utf-8"改为encoding="gbk"即可。
“utf-8不支持中文么?答案当然是支持的,为什么encoding="utf-8"的时候会出错,原因在于xml头指定了使用utf8来解释这个文档内容,但是当使用编辑器编辑这个文档的时候,输入的中文却不是utf8编码(而是ANSI编码),这样自然会出错。解决起来也很容易,使用记事本打开xml文件,输入中文注释,然后选择另存为,在弹出的对话框中选择utf-8编码。或者使用editplus,ultraedit等编辑器打开xml文件,在相关的菜单中修改文件的编码为utf-8格式,然后保存,这样就可以正常使用中文注释了。 ”
总结,xml头定义中的encoding与xml文件自身的编码不一致会导致文件解释异常。
但是,我并没有中文注释,于是下了一个Notepad++,将文件变成utf-8的格式,果然看到了有一段的空格是有问题,改掉之后,果然就能正常运行了。