Hi All:
Any help or hint is greatly appreciated it!!
I am currently using IceFaces 1.8.2,
Jsf 1.1, and JasperReport 3.5.2.
I get the following error:
net.sf.jasperreports.engine.JRException: Could not load object from location : /test_subreport.jasper
The report test_report.jasper has a subreport called test_subreport.jasper. I placed both test_report.jasper and test_subreport.jasper in the directory "WEB-INF/reports/"
public
String testSearch() throws Exception
{
try
{
Connection connection;
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getResponse();
InputStream reportStream = context.getExternalContext().getResourceAsStream("WEB-INF/reports/test_report.jasper");
ServletOutputStream servletOutputStream = response.getOutputStream();
ServletContext ctx = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
String filepath = ctx.getRealPath("/WEB-INF/reports/");
filepath = filepath = "/";
String imagepath = ctx.getRealPath("/WEB-INF/images/test_logo.gif");
HashMap parameterMap = new HashMap();
parameterMap.put("SUBREPORT_DIR", filepath);
parameterMap.put("Test Number", testNumber);
parameterMap.put("Image Path", imagepath);
Properties properties = new Properties();
properties.load(context.getExternalContext().getResourceAsStream("WEB-INF/config.properties"));
String driver = properties.getProperty("jdbc.driver");
String jdbc_url = properties.getProperty("jdbc.url");
String username = properties.getProperty("jdbc.username");
String password = properties.getProperty("jdbc.password");
Class.forName(driver);
connection = DriverManager.getConnection(jdbc_url, username, password);
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap, connection);
//byte[] reports = JasperRunManager.runReportToPdf(reportStream, parameterMap, connection);
connection.close();
response.setContentType("application/pdf");
servletOutputStream.flush();
servletOutputStream.close();
}
catch(Exception e)
{
log.error("exception message:"+e.getMessage());
}
return "success";
}