maurozambito Posted November 14, 2008 Share Posted November 14, 2008 Hi, my names is Mauro and I'm an italian newbie Java developer. I develop a web application, and I create a servlet that try to load a file .jasper. This is my code:public class TestReport2 extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response){ try { File f= new File("C:/prg/iReport/test4.jasper"); FileInputStream in = new FileInputStream(f); JasperReport report = (JasperReport) JRLoader.loadObject(in); System.out.println("Report caricaton"); JasperPrint print =JasperFillManager.fillReport(report, new HashMap(), new JREmptyDataSource()); JasperExportManager.exportReportToPdfFile(print, "C:/prg/iReport/test4.pdf"); System.out.println("Report esportaton"); } catch (JRException ex) { ex.printStackTrace(); } catch(FileNotFoundException ex){ ex.printStackTrace(); } } But I have the following exception:GRAVE: Servlet.service() for servlet TestServlet2 threw exceptionjava.lang.NullPointerException at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:192) at it.maurozambito.maurolog.test.TestReport2.doGet(TestReport2.java:36) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619) I don't understand the Exception cause. Can you help my, pleaseThanks, and sorry for my bad english. Link to comment Share on other sites More sharing options...
tomdes Posted November 17, 2008 Share Posted November 17, 2008 I don't know if this is the solution for your problem but I had simular problems.Place your jasper file in the web/WEB-INF folder en call the file from there.Included my code for a servlet (not to PDF file but to browser). Code:protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { ServletOutputStream servletOutputStream = null; servletOutputStream = response.getOutputStream(); File reportFile = new File(getServletConfig().getServletContext().getRealPath("/WEB-INF/factuurzonderlijnen.jasper")); byte[] bytes = null; bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), aanmakenParameters(fp),new HashMap(), new JREmptyDataSource()); response.setContentType("application/pdf"); response.setContentLength(bytes.length); servletOutputStream.write(bytes, 0, bytes.length); servletOutputStream.flush(); servletOutputStream.close(); } catch (Exception e) { StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); e.printStackTrace(printWriter); response.setContentType("application/pdf"); response.getOutputStream().print(stringWriter.toString() + e.toString()); } } Link to comment Share on other sites More sharing options...
lucianc Posted November 17, 2008 Share Posted November 17, 2008 See this thread.HTH,Lucian 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