首页 > 代码库 > XML文件未加载问题因素之一

XML文件未加载问题因素之一

今天在修改wuser数据库连接配置文件user.proxool.xml之后重启服务,发现访问接口均报错。

[访问user.getTgUser报错:NoSuchElementException]

技术分享

[访问user.getUser报错:NullPointerException]

技术分享

分别找到对应报错行,均为访问数据库的一行

【getUser,NoPointerException,Line:39】

技术分享

 

【getTgUser,NoSuchElementException,Line:41】

技术分享

 分析两个接口的不同之处,一个有别名,报NoSuchElementException,另一个没有别名,报NoPointerException,因此猜测是数据库连接池有问题。

从报错内容中也可以得到印证。

技术分享

于是翻出源码,找到这一行

技术分享

回头看初始化日志,并没有加载数据库配置文件的部分。因此估计是user.proxool.xml没有加载导致。

于是将服务器中的user.proxool.xml移到本地,并将服务器上面该文件删除。

技术分享

重启服务,再次访问。

果然结果和之前一样。因此确定是此配置文件没有被加载导致。那么为什么没被加载呢?

首先查看是不是XML有问题。

看名字,没问题。

用文本编辑器打开,看别名、配置...

都没问题。。。

咦,这是什么?

技术分享

UTF-8-BOM格式

想起之前同事跟我说过,BOM格式就是第一行前面有一串隐藏的字符,用于表示字符集。

百度一下:

技术分享

心中小鹿乱撞了,感觉就是这个原因导致的XML加载失败,于是赶紧改了字符集变为无BOM格式,上传,重启。

技术分享

看到页面上打印的密密麻麻,怎么就那么兴奋呢?

XML文件未加载问题因素之一