Hello,
Thank you for the idea. It crossed my mind too but I was to much
focussed on the HttpServletResponse side. In the same bean I also set
all information about the PDF in the HttpServletResponse. But with your
idea I will give up the idea to put everything in a bean. I think that I
will create a method in a utility class that accepts the
HttpServletResponse and the data for the PDF as a parameter. This method
then sets the information in the HttpServletResponse and puts the stream
in there too. I only need to code this once and it will work for all
(future) applications.
Regards,
Marco
Op 27-08-12 11:19, Jean-Louis MONTEIRO schreef:
Hi,
If your managed bean (export) is using the Servlet Response, it seems to me
difficult to make it work without sending the serialized object itself.
Moreover, I agree, it's not clear at all.
I would recommend to change the export bean a bit and make it work with
common Input/OutputStream.
Then, the caller can strean the output from the export bean in the servlet
response and does not need to send the response itself.
Hope I got the question and it helps.
JLouis
2012/8/26 Marco de Booij <marco.develo...@debooy.eu>
Hello,
I have a technical question.
I use:
- apache-tomee-plus-1.1.0-**SNAPSHOT from August 24
- Ubuntu 12.04
- java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3)
(6b24-1.11.3-1ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
I have an application with a JSF Managed Bean (export) that generates a
PDF file and returns it to the browser. I call the Managed Bean as follows:
ExportManager exportBean = (ExportManager) FacesContext.**
getCurrentInstance().**getApplication().**getELResolver().getValue(**context.getELContext(),
null, "export");
exportBean.export(exportData);
I do not want to put this bean in every application that I make. This way
I only have the JasperReport and its dependent libraries once.
So to access this bean from other applications I can not do it this way
(or am I wrong?). I make it a remote bean so I can define it with an @EJB
annotation or through a JNDI lookup. This does not work because the
FacesContext is null:
HttpServletResponse response = (HttpServletResponse) FacesContext.*
*getCurrentInstance().**getExternalContext().**getResponse();
I tried to find how to get the HttpServletResponse but I could not.
Passing the HttpServletResponse is a solution that is discouraged.
So my question is: "What is the best way to do this?" A WebService looks
heavy to me since I only have 1 application server involved.
I got it working a while ago in Glassfish. Forgot how and I lost the war
file and sources
Regards,
Marco