org.xml.sax.SAXParseException:* VALID * XML文件的结尾过早


问题内容

我收到非常奇怪的“文件过早结束”。我们的一台服务器上最近几天的异常。在 相同的 XML配置在另一台服务器上的罚款。我们在这两台服务器上都使用Tomcat
5.0.28。这段代码已经使用了7年以上,直到最近的服务器崩溃后,我们才在其中一台服务器上遇到此问题。XML和Java解析代码没有变化。:(

我唯一看到的区别是Java版本-

问题服务器 Java版本“ 1.6.0_16” Java SE运行时环境(内部版本1.6.0_16-b01)Java
HotSpot(TM)64位服务器VM(内部版本14.2-b01,混合模式)

工作服务器 Java版本“ 1.6.0_07” Java™SE运行时环境(内部版本1.6.0_07-b06)Java
HotSpot(TM)64位服务器VM(内部版本10.0-b23,混合模式)

这是已经使用了几年的Java代码-

private void readSource(final InputSource in ) {
    try {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(in);
        Element elt = doc.getDocumentElement();

        this.readElement( elt );
    } catch ( Exception ex ) {
        ex.printStackTrace();
        throw new ConfigurationException( "Unable to parse configuration information", ex );
    }
}

这是例外。

[Fatal Error] :-1:-1: Premature end of file.
org.xml.sax.SAXParseException: Premature end of file.
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at com.circus.core.Configuration.readSource(Configuration.java:706)

我已经尝试验证XML,但没有发现错误。知道我还能在哪里寻找可能的问题吗?

任何指针将不胜感激!

TIA-Manish


问题答案:

解决了。问题出在其他地方。cron作业中的另一个代码是将XML截断为0个长度的文件。我已经照顾好了。