jQuery in Action, 2nd edition*
The moose likes JSF and the fly likes Icefaces,JasperReport Integration Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » JSF
Bookmark "Icefaces,JasperReport Integration" Watch "Icefaces,JasperReport Integration" New topic
Author

Icefaces,JasperReport Integration

John Smith
Ranch Hand

Joined: Aug 21, 2004
Posts: 48
Hi All:

I am using Icefaces 1.8.2, Jsf 1.1 and JasperReport 3.5.2.
I click a button and it call "testSearch" and should give return a pdf file. Instead nothing happens. There are no errors and no pdf file.
Any help or hint would be greatly appreciated it

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/");
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);

connection.close();

response.setContentType("application/pdf");
servletOutputStream.flush();
servletOutputStream.close();
}
catch(Exception e)
{
log.error("exception message:"+e.getMessage());
}

return "success";
}
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 15960
    
  19

Don't try and generate non-HTML documents in JSF code. All you will get is pain. Move the report generation functionality to a plain servlet.


Customer surveys are for companies who didn't pay proper attention to begin with.
 
 
subject: Icefaces,JasperReport Integration
 
Similar Threads
problem implementing iReports with servlets
JasperReports in webapp (JSF2)
How to call a servlet from JSF without using dispatch(url)
Servlet OutputStream
JasperReport error while connecting from Struts action class