kmentzelos Posted November 1, 2013 Share Posted November 1, 2013 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 JavaSEthis 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/ServletOutputStreamat 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.ServletOutputStreamat 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 moreJava Result: 1 Link to comment Share on other sites More sharing options...
netti royala Posted November 1, 2013 Share Posted November 1, 2013 ya possible ,even u need not to write java code.you down loaded iReport i think.in that you have a Design ,XML and Preview in top .you just click the Preview mode. Link to comment Share on other sites More sharing options...
kmentzelos Posted November 1, 2013 Author Share Posted November 1, 2013 I understand that but I need to do it programmatically using java (JavaSE) because it is an event driven action. Link to comment Share on other sites More sharing options...
Timbo2013 Posted November 1, 2013 Share Posted November 1, 2013 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 More sharing options...
Solution jasperreport_1 Posted November 1, 2013 Solution Share Posted November 1, 2013 If you are using Maven use:<dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports</artifactId><version>[5.1.0]</version></dependency>The "library edition" links to 5.1.0 and the JasperServer links to 5.5.0 :-)http://community.jaspersoft.com/project/jasperreports-library/releases Link to comment Share on other sites More sharing options...
jasperreport_1 Posted November 1, 2013 Share Posted November 1, 2013 . Link to comment Share on other sites More sharing options...
bsswartz Posted November 1, 2013 Share Posted November 1, 2013 His code does exactly what your code sample does. It is some kind of a new dependency/vexing bug with JasperReports 5.5 Link to comment Share on other sites More sharing options...
kmentzelos Posted November 1, 2013 Author Share Posted November 1, 2013 It worked! thanks for your answers. but only with version 5.1 can you explain this to me? why 5.1 is so much different to 5.5? Link to comment Share on other sites More sharing options...
jasperreport_1 Posted November 2, 2013 Share Posted November 2, 2013 I dont know, i had the same trouble yesterday too (evaluating jasper reports). A Java SE library shouldnt have dependencies to java ee libraries. Maybe its a bug. Link to comment Share on other sites More sharing options...
Java_Jasper Posted November 4, 2013 Share Posted November 4, 2013 Make sure you mark the correct answer so people will not be confused later. Link to comment Share on other sites More sharing options...
Timbo2013 Posted November 7, 2013 Share Posted November 7, 2013 And in preview you can save the report in the format you want... But I think that the subreports and/or data passing are not working unproblematic. 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