Hi, I have a Servlet which reads the .jasper files and the data xml file. I know the file is valid and being read, cause I have printed the entire data file contents and also tested the reports with the same datafile from a sample (non-web) regular java application. However in the sevlet code "Document document = JRXmlUtils.parse(dataFile)" returns a null. I tried passing stream, file name and none of them work. Any pointers as to why this is happenning? Here is my code snippet: //Read all Subreports.. InputStream sub1Stream = context.getResourceAsStream("/reports/subreport1.jasper"); JasperReport subreport1 = (JasperReport) JRLoader.loadObject(sub1Stream); params.put("SUBREPORT_1", subreport1); System.out.println("Subrepoprt1 " + sub1Stream); //Read Data to populate the report String path = context.getRealPath("/data/report.xml"); System.out.println("path" + path); //This is verified and valid File dataFile = new File(path); //this is fine too.. Document document = JRXmlUtils.parse(dataFile); System.out.println("document " +document); //printsnull params.put(JRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT, document); Appreciate any help/suggestions Thanks