這是我的第一個問題,所以告訴我任何缺少的東西,所以我可以添加它。SAXParseException在一種情況下,但沒有在其他情況下,當使用相同的XML
現在,我們有一個使用tomcat 7的部署,我們有5個servlet可以修改SQLServer數據庫中的一些數據,基於從5個.jar(每個servlet一個)讀取的幾個.XML,以及所有這些.jar是由.war發起的,我試圖修改它,使它停止作爲一個servlet工作,並且您可以在本地運行修改。
我在這兩種情況下(通過Tomcat和我的本地「run.bat」)具有相同的配置,他們都使用相同的庫讀取文件,所以沒有機會,其中之一讀取.XML這是沒有驗證,但在本地方案我得到「org.xml.sax.SAXParseException:內容不允許在序言中」
這是生成問題的行(「文件」是文件的路徑) :
public void procesarArchivo(String file) throws SAXException, IOException, SAXException {
xr.parse(new InputSource(new StringReader(leerXML(file))));
/* i do stuff here*/
}
public String leerXML(String XMLName) {
String line = "";
StringBuffer sb = new StringBuffer();
try {
InputStream is = this.getClass().getClassLoader().getResourceAsStream(XMLName);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
br.close();
is.close();
} catch (Exception e) {
sb.append(e.getMessage());
}
return sb.toString();
}
這裏有.log文件與everithing做工精細該servlet:
INFO [Thread-1 ] - [[Cargando_reglas_del_sistema]]...
DEBUG [Thread-1 ] - [[Procesando_Archivo]]: com/systech/reglas/xml/reglas_0.xml
DEBUG [Thread-1 ] - [[Leyendo_regla]]: CTRLDOCURE.sql
/*... and so on with all the .sql*/
在這裏你可以看到本地.log文件(使用與以前相同的庫),當它顯示「procesando archivo」意味着該文件已被找到,但隨後嘗試讀取它時:
INFO [main ] - [[Cargando_reglas_del_sistema]]...
DEBUG [main ] - Procesando Archivo: com/systech/reglas/xml/reglas_0.xml
ERROR [main ] - org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; El contenido no está permitido en el prólogo.
我不明白爲什麼其中一個工作,而另一個不是當它執行相同的代碼時。
任何幫助將受到讚賞,而對於英文不好