&引用;“文件过早结束”;Java读取和写入XML数据文件时出错

&引用;“文件过早结束”;Java读取和写入XML数据文件时出错,java,xml,servlets,Java,Xml,Servlets,我一直在使用JDOM库通过Javaservlet读写XML文件 问题是,当我使用AJAX向我的Servlet发送许多请求时,Servlet读取和写入XML文件中的数据,很多时候它都无法显示错误:文件过早结束。如何同步所有这些文件的读/写操作,或者是否有其他方法来防止这些问题?如果需要更多细节,请告诉我 在这种情况下,使用线程有什么好处吗 非常感谢 两种可能的解决方案是: 将您的文件写入name.xml.part,然后在完成/关闭后重命名为name.xml,这使写入更接近原子化——读者只有在查找

我一直在使用JDOM库通过Javaservlet读写XML文件

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

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


非常感谢

两种可能的解决方案是:

  • 将您的文件写入name.xml.part,然后在完成/关闭后重命名为name.xml,这使写入更接近原子化——读者只有在查找“.xml”文件时才能读取它,除非它确实完成了
  • 或者,使用数据库,原子性就是他们所做的

    • 我曾经遇到过这样的问题,但完全不同。我正在分享我关于这个错误的经验。请原谅给您带来的不便

      我面临以下问题

    • 我必须用动态变量数据形成一个xml文件。并在java中通过PostMethod将xml发布到URL

    • 正常情况下,它是有效的。但当动态变量数据为空时。然后显示“文件过早结束”

    • 解决方案:

    • 只需检查变量是否为空。它对我有效

    • 我也面临过这个问题。我的经验是

    • 清洁工程
    • 重建项目

    • 然后它将成功运行……

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

      仅供参考,我认为“完全不一样”不是你的意思。应该“不完全一样”“:)请你详细说明答案好吗?我也有同样的错误,但无法理解你的答案。@RY4一个完美的解决方案!