科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[朱远翔]“文档要求有且只有一个根元素”错误原因分析

[朱远翔]“文档要求有且只有一个根元素”错误原因分析

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Apusic应用服务器在启动时报错“文档要求有且只有一个根元素”,一般是因为修改了config目录下面的基于XML格式定义的配置文件,修改后没有采用正确的格式保存而导致出现问题。

作者:朱远翔 来源:blogjava.net 2007年9月26日

关键字: Apusic 朱远翔

  • 评论
  • 分享微博
  • 分享邮件

Apusic应用服务器在启动时报错“文档要求有且只有一个根元素”,一般是因为修改了config目录下面的基于XML格式定义的配置文件,修改后没有采用正确的格式保存而导致出现问题。

全部错误内容如下:
2007-09-11 13:28:16 致命 [apusic.server.Main] 装载服务配置失败。
javax.management.ServiceNotFoundException: 在分析 URL "file:/C:/Apusic/Apusic-4.0.3/config/apusic.conf" 时出现问题:
file:/C:/Apusic/Apusic-4.0.3/config/apusic.conf: line 1: 文档要求有且只有一个根元素。
        at com.apusic.service.ServiceManager.loadServicesFromURL(Unknown Source)
        at com.apusic.server.J2EEServer.start(Unknown Source)
        at com.apusic.server.J2EEServer.startup(Unknown Source)
        at com.apusic.server.Main.main(Unknown Source)无法被XML Parser正确解析的原因分析如下:

×Apusic V4.0.3版本
情况分析:
使用记事本(Notepad)打开XML文件后采用UTF-8格式保存了文件,于是保存时会在文件前面自动增加EF BB BF三个字节的内容,作为Unicode的Signature,导致Apusic的XML解析器无法正确读出从而报错,但是无论采用何种编辑器打开文件都无法看到这三个字节,使得问题原因非常难以查找。

解决方案:
1. 最简单的办法就是找到那个配置文件,经常修改的就三个文件:apusic.conf、databases.xml、server.xml,例如上面的错误代码中的就是apusic.conf文件;
2. 使用Notepad打开后,另存为ANSI的格式。
    或者,使用EmEditor打开后将文件另存,另存时将“Add a Unicode Signature”选择取消,保存后就可以正常使用。

×Apusic V5.0版本
不存在这个问题。


另:其他XML解析中也可能出现这样的错误,原理应该相同。 
        这个是JDK的Bug,在最新的Apusic V4.0.3版本中已经修复。 

查看本文来源   

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章