我越来越奇怪“文件过早结束”。最近几天在我们的一台服务器上例外。相同的配置 XML 在另一台服务器上工作正常。我们在这两台服务器上都使用 Tomcat 5.0.28。这段代码已经工作了很长时间(7 年以上),只是在最近的服务器崩溃之后,我们在其中一台服务器上遇到了这个问题。XML 和 Java 解析代码没有变化。:(
我能看到的唯一区别是 Java 版本 -
问题服务器 java 版本 "1.6.0_16" Java(TM) SE Runtime Environment (build 1.6.0_16-b01) Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)
工作服务器 java 版本“1.6.0_07” Java(TM) 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, - 马尼什