请教:读取.xml异常 多谢。

kk216 2008-05-26 10:06:14
系统启动的时候,将xml数据读到NodeList对象中; 运行系统时,再根据条件遍历读取指定的xml节点信息。

有时候,读取信息不完整,这个时候一般重启系统就ok了。

请教:为什么会这样呢?

xml的数据已经在启动的时候保存到内存了,会不会是因为NodeList也属于w3c里面的,它实际上遍历的还是
docment树,这个东东在内存中会被损坏吗? 因此导致读取异常?

这个问题,我没有重现出来。
会不会跟多人访问,不断遍历内存数据有关系?

...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
laorer 2008-06-02
  • 打赏
  • 举报
回复
所有都读出来了的。这种问题都出现在客户运行一段时间后,目前的解决方法是出现问题后,就重启系统(相当于重新读xml文件)
我还是觉得可能有些隐性的操作没有被发现,
如果nodelist没有被改变的话,应该不会出现那种情况,不过问题解决了那倒就好
至于用什么来存储数据,那个应该是根据你的应用来的吧,遍历的话,肯定没有map来的快,毕竟hashmap的时间是 0(1),而遍历是线性的
kk216 2008-06-02
  • 打赏
  • 举报
回复
问了很多人,也没有定位出问题。每次读取数据的时候都生成单独的对象,按理说只有改变了那块存储XML数据的内存才会出错的。
可能是遍历Dom的时候哪里出了问题吧,也可能是系统本身原因。 我重写了代码,用Map类型来存储数据,性能快了许多。
kk216 2008-05-26
  • 打赏
  • 举报
回复
谢谢你的答复。

所有都读出来了的。这种问题都出现在客户运行一段时间后,目前的解决方法是出现问题后,就重启系统(相当于重新读xml文件)

使用场景:系统启动后,各客户端访问页面,每个页面都涉及到“通过遍历NodeList对象中,找到想要的数据”;
操作比较频繁,多的时候有十几万用户。 用着用着,就会出现“遍历获取的数据不完整,就是没有把某节点下的数据完全获取出来”。
laorer 2008-05-26
  • 打赏
  • 举报
回复
系统启动的时候,将xml数据读到NodeList对象中;
这个时候有没有全部读出来?
如果读出来的话,你可以在根据条件读取xml结点前打印一下所有的nodelist内容,看看有其有没有变化

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧