【问题标题】:"Premature end of file" error when Java read and writes XML data filesJava 读写 XML 数据文件时出现“文件过早结束”错误
【发布时间】:2010-10-17 00:54:36
【问题描述】:

我一直在使用 JDOM 库通过 Java Servlet 读写 XML 文件。

问题是,当我使用 AJAX 向在 XML 文件中读取和写入数据的 servlet 发送许多请求时,很多时候它无法显示错误:文件过早结束。如何将所有这些读/写同步到文件,或者有没有其他方法可以防止这些问题?如果需要更多详细信息,请告诉我。

在这种情况下使用线程有什么好处吗?

非常感谢!

【问题讨论】:

    标签: java xml servlets


    【解决方案1】:

    尝试将所有写入请求添加到 处理队列,然后通过队列的这些元素构建/附加 XML。

    【讨论】:

      【解决方案2】:

      我也遇到过这个问题。我的经验是……

      1. 清理项目
      2. 重建项目

      那么它就会运行成功....

      【讨论】:

        【解决方案3】:

        我遇到过这类问题,但完全不一样。我正在分享我对这个错误的经验。如有不便,敬请见谅。

        我遇到了以下问题

        1. 我必须用动态变量数据形成一个 xml 文件。并通过 Java 中的 PostMethod 将该 xml 发布到 URL。

        2. 通常它可以工作。但是当动态变量数据为空时。然后它显示“文件过早结束”。

        解决方案:

        1. 只检查变量是否为空。它对我有用。

        【讨论】:

        • 仅供参考,“完全不一样”并不是你的意思,我想。应该是“不完全一样”。 :)
        【解决方案4】:

        两种可能的解决方案是:

        • 将您的文件写入 thename.xml.part,然后在完成/关闭后重命名为 thename.xml,这使得写入更接近于原子性 - 阅读器在确定完成之前无法读取它,只要它只查找“.xml”文件。
        • 或者,使用数据库,原子性就是他们所做的。

        【讨论】:

        • 你能详细说明一下答案吗?我遇到了同样的错误,但无法理解你的答案。
        • @Ry4an 完美解决方案!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-11
        • 2013-04-08
        • 2012-04-28
        • 1970-01-01
        • 2018-04-08
        • 1970-01-01
        相关资源
        最近更新 更多