lucianocasa Posted January 13, 2011 Share Posted January 13, 2011 HiI'm having trouble with the speed of the report.My datasource is an XML using XPATH.IReport, the report is shown in less than 7 seconds and the java program it takes 8 minutes. This delay occurs in Fill.can anyone help?How do I get JRXmlDataSource.class? This would make any difference?TksLucianoCode: public void fill() throws JRException, IOException { HashMap<String, Object> params = new HashMap<String, Object>(); System.out.println("InÃcio Fill: " + now()); ResourceBundle myresources = ResourceBundle.getBundle("report"); Document docXML = JRXmlUtils.parse(new File(sXMLDataSource)); params.put(JRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT, docXML); params.put(JRXPathQueryExecuterFactory.XML_DATE_PATTERN, "yyyy-MM-dd"); params.put(JRXPathQueryExecuterFactory.XML_NUMBER_PATTERN, "#,##0.##"); params.put(JRXPathQueryExecuterFactory.XML_LOCALE, Locale.ENGLISH); params.put("REPORT_QUADRICULADO", sImprimeQuadriculado ); params.put("REPORT_FOLHAROSTO", sImprimeFolhaRosto ); params.put(JRParameter.REPORT_RESOURCE_BUNDLE, myresources ); //params.put(JRParameter.REPORT_LOCALE, Locale.US); System.out.println("Rodar2 Fill: " + now()); //JasperFillManager.fillReportToFile(sFileJasper, sFilePrint, params); oFilePrint = JasperFillManager.fillReport(sFileJasper, params); System.out.println("Fim Fill: " + now()); } Link to comment Share on other sites More sharing options...
ceday Posted January 13, 2011 Share Posted January 13, 2011 have you tried using JaxenXPathExecuterFactory?I have seen somewhere (probably here in forums), this implementation is a lot faster than the default one.override the property in jasperreports.properties filenet.sf.jasperreports.xpath.executer.factory=net.sf.jasperreports.engine.util.xml.JaxenXPathExecuterFactory Link to comment Share on other sites More sharing options...
lucianocasa Posted January 14, 2011 Author Share Posted January 14, 2011 I did not try I'll try to see if it changes anything.I'll see how I do this in eclipse because I do not know.Tks Link to comment Share on other sites More sharing options...
lucianocasa Posted January 14, 2011 Author Share Posted January 14, 2011 Sensational and unbelievable!!The report went on to run in 7 seconds.Tks a lot Link to comment Share on other sites More sharing options...
mazen.doha Posted December 5, 2016 Share Posted December 5, 2016 Hi,Can you please post the code that you used in order to make it work? I've been trying to add the followingDefaultJasperReportsContext context = DefaultJasperReportsContext.getInstance();JRPropertiesUtil.getInstance(context).setProperty("net.sf.jasperreports.xpath.executer.factory", "net.sf.jasperreports.engine.util.xml.JaxenXPathExecuterFactory");[/code]But nothing is changing (even if I put "bla bla bla" instead of "net.sf.jasperreports.engine.util.xml.JaxenXPathExecuterFactory")here's the code I'm usingprivate JasperPrint getJasperPrintInstance(JasperReport report) throws JRException, NamingException, SQLException { JasperPrint jasperPrint = null; DefaultJasperReportsContext context = DefaultJasperReportsContext.getInstance(); JRPropertiesUtil.getInstance(context).setProperty("net.sf.jasperreports.xpath.executer.factory", "net.sf.jasperreports.engine.util.xml.JaxenXPathExecuterFactory"); if (dataSource == null) { jasperPrint = JasperFillManager.fillReport(report, this.reportParams, connection); } else { jasperPrint = JasperFillManager.fillReport(report, this.reportParams, new JRBeanCollectionDataSource(getDataSource())); } return jasperPrint;}[/code] Link to comment Share on other sites More sharing options...
javier.ggi90 Posted March 7, 2017 Share Posted March 7, 2017 Mazen, did you get it to work? If so, how? I am having the same exact behavior. Thanks for your time. Link to comment Share on other sites More sharing options...
javier.ggi90 Posted March 7, 2017 Share Posted March 7, 2017 Solved it using jasperreports-6.3.1 and adding the following code (supposed to be deprecated according to a post I saw before):JRProperties.setProperty("net.sf.jasperreports.xpath.executer.factory" ,"net.sf.jasperreports.engine.util.xml.JaxenXPathExecuterFactory");[/code] Link to comment Share on other sites More sharing options...
mazen.doha Posted August 31, 2017 Share Posted August 31, 2017 javier can you post the code you used? Thanks Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now