I am not able to keep the old conversation once a jasper report PDF file is
displayed. I have a download page that shows some information and a download
button. The first download works fine. The page blows up the second time I
click on the download button because the In variables are not available in the
conversation context.
Here is the code in the download button:
byte[] pdf = createPdfReport();
FacesContext faces =
javax.faces.context.FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse)
faces.getExternalContext()
.getResponse();
response.setContentType( "application/pdf" );
response.setContentLength( pdf.length );
response.setHeader( "Content-disposition", "attachment; filename=\"" +
createFileName() + "\"" );
ServletOutputStream out;
try
{
out = response.getOutputStream();
out.write( pdf );
}
catch ( IOException ex )
{
log.error( "Could not output file:" + ex );
}
faces.responseComplete();
return null;
SeamPhaseListener does try to keep the conversation alive in afterPhase(). But
the way it does it is writing conversationId to the response. The response in
this case is the PDF file, which never comes back.
Another odd thing is that it always tries to reload the download page no matter
which link I click on the second time. And it goes from restore_view phase to
render_response phase without going through other phases.
Anybody had success with jasper reports in Seam application? Any suggestion is
greatly appreciated.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3950198#3950198
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3950198
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user