2016-04-29 49 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(".",""); 

和它的工作!

相关问题