Exception in Jasper Report while integrating of Jasper report with Struts

I m getting the null value in         InputStream reportStream = getServlet().getServletConfig().getServletContext().getResourceAsStream("/reports/DbReport.jasper");
 While i integrate the jasper report with struts framework.

i have already the compile file with DbReport.jasper in report folder
i m attaching the DbReport.jasper file also..

please tell me why this exception and null value come

package net.ensode.jasperbook.struts;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.HashMap;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperRunManager;
 
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class GenerateReportAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
    Connection connection=null;
    ServletOutputStream servletOutputStream =response.getOutputStream();
 
    InputStream reportStream = getServlet().getServletConfig().getServletContext().getResourceAsStream("/reports/DbReport.jasper");
    
 
    System.out.println("ReportStream---------->>>>>>>>>>>>>>>>"+reportStream);
    response.setContentType("application/pdf");
 
     try{
           Class.forName("com.mysql.jdbc.Driver").newInstance();
           connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/ashu_db","root","mysql");
           System.out.println("After load Driver========================");
      
           JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream, new HashMap(), connection);
        }catch(Exception e){
            e.printStackTrace();
        }
    finally{
      connection.close();
      servletOutputStream.flush();
      servletOutputStream.close();
    }
    return mapping.getInputForward();
    }
}

Open in new window

Adwait ChitaleyAsked:
Who is Participating?
 
CEHJConnect With a Mentor Commented:
Try
InputStream reportStream = new FileInputStream(request.getRealPath("/reports/DbReport.jasper"));

Open in new window

0
 
Gibu GeorgeChief Technology OfficerCommented:
InputStream reportStream = getServlet().getServletConfig().getServletContext().getResourceAsStream(<request.getContextPath()+"/reports/DbReport.jasper");
0
 
Gibu GeorgeChief Technology OfficerCommented:
remove the < sign is a typo

InputStream reportStream = getServlet().getServletConfig().getServletContext().getResourceAsStream(request.getContextPath()+"/reports/DbReport.jasper");
0
 
objectsCommented:
make sure your reports directory is inside your classes directory

0
 
CEHJCommented:
:-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.