weblogic.application.ModuleException: VALIDATION PROBLEMS WERE FOUND E:\bea\user_projects\domains\base_domain\.\autodeploy\MyApp\WEB-INF\web.xml:1:5:1:5: problem: No content type provided for validation of a content model.:<E:\bea\user_projects\domains\base_domain\.\autodeploy\MyApp/WEB-INF/web.xml:1:5>
一个web项目在tomcat下可以运行,转到weblogic下,在控制台中就报异常信息:
问题分析:
问题一定出在tomcat和weblogic对web.xml的格式处理上,再看“1:5:1:5”,凭感觉应该是1行5列的位置,第一行是:<?xml version="1.0" encoding="UTF-8"?>,再根据“No content type provided for validation of a content model”可以推断weblogic没有识别出它是一个xml文件。这时候,打开这个web.xml属性多了一句话:Byte Order Mark is UTF-8(BOM)。
查看和转化:
既然一个UTF-8文件可能有BOM,也可能没有,那该如何区分呢?只要用带十六进制编辑方式的软件,例如,用UltraEdit-32打开文件,切换到十六进制编辑模式,察看文件头部是否有EF BB BF。有,则为带BOM方式;无BOM方式:文件头部有3C 3F 78。
Windows自带的notepad记事本,保存为UTF-8时,默认就带BOM。转换的方法有很多,常见的UltraEdit-32或NotePad++都可以,以UltraEdit-32为例。打开文件后,选择"另存为",在"编码"一栏中,选择“UTF-8 -无BOM”。
另外,DreamWeaver CS3也有类似的选项,在"首选项"中,如果选择 Unicode (UTF-8) 作为默认编码,则可以选择"包括 Unicode 签名 (BOM)"选项,以在文档中包括字节顺序标记 (BOM)。否则,不带BOM: