web项目在启动的时候报Content is not allowed in prolog错误,后经检查发现是web项目在使用dom4j/sax 读取一个xml文件时报错。
原因如下:
BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF BB BF。这个标记是可选的,因为UTF8字节没有顺序,所以它可以被用来检测一个字节流是否是UTF-8编码的。微软做这种检测,但有些软件不做这种检测,而把它当作正常字符处理。
微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记。
由于windows平台把utf-8 格式的文件在前边加了 EF BB BF三个字节 ,而dom4j 不认这些!所以可以使用ue或Notepad++打开xml 文件,另存为"utf-8 无bom" 替换项目中的文件,重新编译一下问题解决。
web项目在启动的时候报Content is not allowed in prolog错误,后经检查发现是web项目在使用dom4j/sax 读取一个xml文件时报错。 原因如下:BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF BB BF。这个标记是可选的,因为UTF8字节没有顺序,所以它可
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io...
今天,更新了struts.xml之后,xml头竟然报错:
Content
is not
allowed
in
prolog
百度之后说是不同的编辑器保存时多了一个BOM头,具体也没看懂。接下来要说
终极解决方案:
从一个正常的xml文件中,把头信息复制到出问题的xml中
<?xml version="1.0" encoding="UTF-8"?>
注意:自己手动在文本里敲...
1.xml编码错误
该xml是UTF-8编码的,如果该文件通过UltraEdit编辑后,会在无BOM头的UTF-8文件中加入BOM,但是DOM4j不认这个BOM(dom4j1.3),解决的办法可以通过升级dom4j到1.6解决www.dom4j.org
什么是BOM?http://www.unicode.org/faq/utf_bom.html#22Unico
今天出现了
Content
is not
allowed
in
prolog
.错误,本以为是tomcat的lib错误。重新下了个新的tomcat,依旧如此。后来才发现是XML文件写的格式错误。
Exception sending context initialized event to listener instance of class org.springframework.web.conte
解析一个xml文件时引起次
异常
,可能是由于BOM引起的
BOM:Byte Order Mask,中文名字节顺序标记,UCS规范建议在输出字节流之前,先传输BOM来判断字节顺序。UTF-8其实不需要依靠BOM来表示字节顺序的,但是可以用BOM来表示编码
方式
。
解决办法:
从一个正常的xml文件中,把头信息复制到出问题的xml中
<?xml vers
mysql报如下错误,截取部分,
message from server: “Host ‘****’ is not
allowed
to connect to this MySQL server
1:在登录mysql服务器
2:执行:GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ WITH GRANT OPTION //赋予任何主机访问数据的权限
3:FLUSH PRIVILEGES //修改生效
这样就可以在其它任何的主机上以root身份登录啦!
您可能感兴趣的文章:mysql登录报错提示:ERROR 104
尝试使用Nginx进行反向代理过程中出现如下错误:
代码如下:
nginx: [emerg] “proxy_cache_path” directive is not
allowed
here in /etc/nginx/conf.d/default.conf:29
提示意思“proxy_cache_path指令不被允许”,在官网上查找了相关说明,也没有发现问题,最后看应用范围才知道,他只能使用于http{ }部分,把proxy_cache_path放置于http部分即可解决此问题
参见:http://nginx.org/cn/docs/http/ngx_http_proxy_module.
在服务器中安装选择server only 时使用navicat for mysql远程链接报错
Host 主机名 is not
allowed
to connect the mysql server
原因
:没有授权远程访问mysql
解决方法:
cmd 中运行mysql -u root -p(如果报mysql 不是内部或外部命令,找到安装mysql对应的bin文件夹运行mysql.exe,如果闪退,在cmd中运行 cd 路径/bin,在运行)
use mysql;
select host from user where user=’root’;
执行update user set