weblogic对xml中BOM处理异常——org.xml.sax.SAXParseException:Content is not allowed in prolog
来源:互联网 发布:工控软件下载 编辑:程序博客网 时间:2024/05/01 15:21
一、问题再现
在部署工程后,启动工程提示异常信息如下,启动失败,从后台查看是工程加载DWR下*sqlmap.xml文件失败。
二、问题解决过程
1)确认了问题就是工程中的某些xml编写不规范导致weblogic部署过程中不能正确识别其为xml文件导致了异常。大致方向确认后再到MyEclipse中查看工程SVN更新的历史信息,检查最近几次提交的变更中影响的xml文件是否存在注释 <!-- --> 前后不空格,或中间是汉字,没有换行导致乱码影响注释的问题。将文件注释统一修改为
英文:
<!-- helloWorld! -->
中文:
<!--
中文注释
-->
修改完后,重新编译打包上传测试库主机,重新部署问题依然存在,可排除注释导致该异常发生。
2)发布的是全量工程,奇怪的是上一个全量版本发布都是正常的,因为时间间隔短,较上一个版本变更较少,利用文件比对工具对工程classes目录进行内容比对,查看差异的xml文件
经过比对找到差异的xml文件
看到两个地方存在差异,一个是左侧的文件说明信息中多了一个“物料清单”字样,一个是xml文件头显示有差异,但是比对之后没有发现有差异的字母或标识。猜测可能是文件属性的问题,在MyEclipse中查看文件属性,发现文件编码格式下方多了一个BOM的标识。关于BOM的在问题延伸中进行描述,从网上查看发现xml文件头中不能带BOM,否则weblogic就不能正常解析该文件为xml文件。为此在UE中打开文件,另存为 UTF-8(无BOM) 格式。覆盖工程中的文件,上传SVN,编译上传测试主机,部署正常。
三、问题延伸
参考 http://blog.csdn.net/muye0503/article/details/41696309
http://blog.csdn.net/rainysia/article/details/7455275
BOM其实是在UTF-16和UTF-32中使用的,为了统一也在UTF-8中引入BOM。
参考 http://www.zhihu.com/question/20167122
“在网页上使用BOM是个错误。BOM设计出来不是用来支持HTML和XML的。要识别文本编码,HTML有charset属性,XML有encoding属性,没必要拉BOM撑场面。虽然理论上BOM可以用来识别UTF-16编码的HTML页面,但实际工程上很少有人这么干。毕竟UTF-16这种编码连ASCII都双字节,实在不适用于做网页。”
- weblogic对xml中BOM处理异常——org.xml.sax.SAXParseException:Content is not allowed in prolog
- org.xml.sax.SAXParseException: Content is not allowed in prolog.
- org.xml.sax.SAXParseException: Content is not allowed in prolog
- org.xml.sax.SAXParseException: Content is not allowed in prolog
- org.xml.sax.SAXParseException: Content is not allowed in prolog.
- org.xml.sax.SAXParseException: Content is not allowed in prolog.
- org.xml.sax.SAXParseException: Content is not allowed in prolog.
- sax解析xml运行出现错误org.xml.sax.SAXParseException: Content is not allowed in prolog.
- sax解析xml运行出现错误org.xml.sax.SAXParseException: Content is not allowed in prolog
- SAX解析xml:SAXParseException: Content is not allowed in prolog
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog解决
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog 终极解决
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog解决
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog解决
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog解决
- XML :org.xml.sax.SAXParseException: Content is not allowed in prolog
- org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog
- ffmpeg 如何配置编译
- 二级指针
- 【Oracle】数据库查看表结构命令
- Html5系列(十一)store.js - 轻松实现本地存储(LocalStorage)
- 继承TPersistent类
- weblogic对xml中BOM处理异常——org.xml.sax.SAXParseException:Content is not allowed in prolog
- android 自定义progressDialog实现
- Gps纠错
- muti-thread & fork
- ext-grid常见问题 : Grid
- IOS: iPhone键盘通知与键盘定制
- ORACLE中date类型字段的处理
- 手动制作update升级包以及制作差分包
- ORA-01720问题解决