PDA

View Full Version : سوال: jasperreport



shahryary
جمعه 13 آذر 1388, 10:57 صبح
با سلام
دوستان اگه میتونن در مورد این خطا به من کمک کنند ممنون میشم .
( در مورد export گزارشات به pdf یا xls توسط jasperreport هست )

کد :

<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>
<%@ page import="net.sf.jasperreports.view.JasperViewer" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%@ page import="net.sf.jasperreports.engine.JRException" %>
<%@ page import="net.sf.jasperreports.engine.JasperCompileManager" %>
<%@ page import="net.sf.jasperreports.engine.JasperExportManager" %>
<%@ page import="net.sf.jasperreports.engine.JasperFillManager"%>
<%@ page import="net.sf.jasperreports.engine.JasperPrint" %>
<%@ page import="net.sf.jasperreports.engine.JasperReport" %>
<%@ page import="net.sf.jasperreports.view.JasperViewer" %>
<%@ page import="net.sf.jasperreports.engine.design.JasperDesign" %>
<%@ page import="net.sf.jasperreports.engine.xml.JRXmlLoader" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>


String filename ="report1.jasper" ;//request.getParameter("filename");
String reporttype ="pdf";// request.getParameter("reporttype");

System.out.println("Connection Established");
String path = application.getRealPath("/report");
JasperPrint jasperPrint = JasperFillManager.fillReport(path + "/" + filename, null, con);
System.out.println("Report Created...");

OutputStream ouputStream = response.getOutputStream();

JRExporter exporter = null;

if ("pdf".equalsIgnoreCase(reporttype)) {
response.setContentType("application/pdf");
exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_P RINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_S TREAM, ouputStream);
} else if ("rtf".equalsIgnoreCase(reporttype)) {
response.setContentType("application/rtf");
response.setHeader("Content-Disposition", "inline; filename=\"file.rtf\"");

exporter = new JRRtfExporter();
exporter.setParameter(JRExporterParameter.JASPER_P RINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_S TREAM, ouputStream);
} else if ("html".equalsIgnoreCase(reporttype)) {
exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_P RINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_S TREAM, ouputStream);
} else if ("xls".equalsIgnoreCase(reporttype)) {
response.setContentType("application/xls");
response.setHeader("Content-Disposition", "inline; filename=\"file.xls\"");

exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_P RINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_S TREAM, ouputStream);
} else if ("csv".equalsIgnoreCase(reporttype)) {
response.setContentType("application/csv");
response.setHeader("Content-Disposition", "inline; filename=\"file.csv\"");

exporter = new JRCsvExporter();
exporter.setParameter(JRExporterParameter.JASPER_P RINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_S TREAM, ouputStream);
}

try {
exporter.exportReport();
} catch (JRException e) {
throw new ServletException(e);
} finally {
if (ouputStream != null) {
try {
ouputStream.close();
} catch (IOException e) {
}
}
}




خطا :
java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1753)


org.apache.jasper.JasperException: An exception occurred processing JSP page /test2.jsp at line 12

9:
10: System.out.println("Connection Established");
11: String path = application.getRealPath("/report");
12: JasperPrint jasperPrint = JasperFillManager.fillReport(path + "/" + filename, null, con);
13: System.out.println("Report Created...");
14:
15: OutputStream ouputStream = response.getOutputStream();


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.netbeans.modules.web.monitor.server.MonitorFil ter.doFilter(MonitorFilter.java:390)

root cause
java.lang.NullPointerException
net.sf.jasperreports.engine.JRPropertiesMap.readOb ject(JRPropertiesMap.java:185)
sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
java.io.ObjectStreamClass.invokeReadObject(ObjectS treamClass.java:974)
java.io.ObjectInputStream.readSerialData(ObjectInp utStream.java:1849)



تمامی lib فایل ها اضافه شده + tomcat 6.0.18 هست .