Jump to content
We've recently updated our Privacy Statement, available here ×

can I user jasper reports to create pdf reports without any server?


kmentzelos
Go to solution Solved by jasperreport_1,

Recommended Posts

Hi, I am new to Jasper Reports. I have downloaded iReport and have created a new report from cherry template and I am able to see it in preview.

is it possible to create a pdf from .jrxml file without any server? just JavaSE

this is my code:

      System.out.println("begin ....");
      hm = new HashMap();
      hm.put("myID", "1");
      hm.put("myNAME", "myname");
 
      // Get jasper report
      String jrxmlFileName = "/tmp/f2/alarms.jrxml";
      String jasperFileName = "/tmp/f2/a1.jasper";
      String pdfFileName = "/tmp/f2/a1.pdf";
 
      JasperReport jasperReport;
      JasperPrint jasperPrint;
      jasperReport = JasperCompileManager.compileReport(jrxmlFileName);
      jasperPrint = JasperFillManager.fillReport(jasperReport,hm, lib.globals.PgSql.getConnection());
      JasperExportManager.exportReportToPdfFile(jasperPrint, pdfFileName);
      
 
When i execute the above:
Start ....
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream
at net.sf.jasperreports.web.util.WebResourceHandlersExtensionRegistryFactory.<clinit>(WebResourceHandlersExtensionRegistryFactory.java:47)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:266)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:157)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115)
at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:53)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.instantiateRegistry(DefaultExtensionsRegistry.java:237)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:214)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:162)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getRegistries(DefaultExtensionsRegistry.java:133)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:105)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.getExtensions(DefaultJasperReportsContext.java:246)
at net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:119)
at net.sf.jasperreports.engine.component.ComponentsEnvironment.getCachedBundles(ComponentsEnvironment.java:109)
at net.sf.jasperreports.engine.component.ComponentsEnvironment.getBundles(ComponentsEnvironment.java:97)
at net.sf.jasperreports.engine.component.ComponentsEnvironment.getComponentBundles(ComponentsEnvironment.java:179)
at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.getSchemaLocations(JRReportSaxParserFactory.java:84)
at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.configureParser(BaseSaxParserFactory.java:131)
at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.createParser(BaseSaxParserFactory.java:94)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1439)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1415)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:254)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:210)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:185)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:176)
at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:172)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:459)
at f2reports.SampleReport.doreportgen(SampleReport.java:51)
at f2reports.F2Reports.main(F2Reports.java:72)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletOutputStream
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 29 more
Java Result: 1

 

Link to comment
Share on other sites

  • Replies 10
  • Created
  • Last Reply

Top Posters In This Topic

Of course you can create PDF files without any server...

If it is a simple Java application (Java SE) you might use this:

public class MyReport{   static HashMap<String, Object> hm = new HashMap<String, Object>();       public static void main(String[] args)    {        hm.put("myID" , 1); // Integer        hm.put("myName" , "Timbo"); // String        hm.put(...);               String in = "c:/PATH/TO/YOUR/REPORT.jrxml";        String out = "c:/PATH/TO/YOUR/PDF.pdf";        try        {            // compile report            JasperReport jasperReport = JasperCompileManager.compileReport(in);                       // fill report            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hm, new JREmptyDataSource());                       // export report to PDF            JasperExportManager.exportReportToPdfFile(jasperPrint, out);        }        catch (JRException e)        {            e.printStackTrace();        }    }}[/code]
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...