2016-04-29 81 views
0

這是我的第一個問題,所以告訴我任何缺少的東西,所以我可以添加它。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. 

我不明白爲什麼其中一個工作,而另一個不是當它執行相同的代碼時。

任何幫助將受到讚賞,而對於英文不好

回答

0

我仍然不是很清楚爲什麼抱歉,這是答案:

我有這個參數的配置文件:

resReglas=./wardir/WEB-INF/lib/reglas.jar 
resVistas=./wardir/WEB-INF/lib/vistas.jar 

aparently第一個不能正常工作時,就發現該文件,但有一些錯誤,我改變了:

String reglasJar =props.getProperty("resReglas"); 

此:

String reglasJar =System.getProperty("user.dir")+ props.getProperty("resReglas").replaceFirst(".",""); 

和它的工作!

相關問題