Following is the servlet i am using to genrate jasper report but
getting exception
package report;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperRunManager;
public class DbDSReportServlet extends HttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException
{
Connection connection;
Statement statement;
ResultSet resultSet;
PreparedStatement pstat;
ServletOutputStream servletOutputStream = response.getOutputStream();
InputStream reportStream =
getServletConfig().getServletContext().getResourceAsStream("/reports/
DbReportDS.jasper");
System.out.println("reportStream "+reportStream);
String fromdt = request.getParameter("fromdate");
String todt = request.getParameter("todate");
try
{
String query = "select adid,concat(name,' ',lastname),concat(add1,',
',city,', ',state),email from memberdetail ";
query=query+"where enrldate >= ? and enrldate<= ? group by adid
order by 1";
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection ("jdbc:mysql://localhost:3307/
marketing","root","root");
//statement = connection.createStatement();
//resultSet = statement.executeQuery(query);
pstat = connection.prepareStatement(query);
pstat.setString(1,fromdt);
pstat.setString(2,todt);
resultSet = pstat.executeQuery();
JRResultSetDataSource resultSetDataSource = new
JRResultSetDataSource(resultSet);
JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream,
new HashMap(), resultSetDataSource);
resultSet.close();
//statement.close();
pstat.close();
connection.close();
response.setContentType("application/pdf");
servletOutputStream.flush();
servletOutputStream.close();
}
catch (Exception e)
{
// display stack trace in the browser
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
response.setContentType("text/plain");
response.getOutputStream().print(stringWriter.toString());
}
}
}
Following exception i am getting while running this servlet
The path i have given in getResourceAsStream("/reports/
DbReportDS.jasper") is correct path but still getting exception.
value in reportStream is showing null
java.lang.NullPointerException
at java.io.ObjectInputStream$PeekInputStream.read(Unknown Source)
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown
Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown
Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at
net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:
53)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:
193)
at
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:
603)
at
net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:
370)
at report.DbDSReportServlet.doGet(DbDSReportServlet.java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
869)
at org.apache.coyote.http11.Http11BaseProtocol
$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:
80)
at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Please help me
thanx in advance
--
---------------------------------------------------------------------------------------------------------------
Java User Group Nagpur
Home Page:
http://www.jugnagpur.com
Blog:
http://jugnagpur.blogspot.com
Wiki:
http://jugnagpur.wikispaces.com/
Project Page:
https://jugnagpur.dev.java.net/
---------------------------------------------------------------------------------------------------------------
You received this message because you are subscribed to JUGNagpur group.
To post to this group, send email to
jugn...@googlegroups.com
To unsubscribe from this group, send email to
jugnagpur+...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/jugnagpur?hl=en