Looking for some suggestions...
mfs wrote:
>
> Guys,
>
> I have use-case where a user can choose to preview a pdf, displayed inline
> in the browser window (without being prompted for the save/open dialog).
> The functionality is working all fine, its just that an
> IllegalStateException is being generated ("Response has already been
> committed, be sure not to write to the OutputStream......) which i would
> want to figure out why? and how to avoid it. Below is very approach opted
> (using DynamicWebResource) to flush out the contents of the dynamically
> generated PDF. Please note that i initially was following another approach
> also listed below, which worked fine on all browsers (with no such
> exception being raised) EXCEPT for certain versions of IE, due to which i
> had to switch to this latter approach..
>
> /** Exception Stack Trace - START **/
>
> ERROR - WebResponse - Unable to redirect to: ?wicket:interface=:0:1:::,
> HTTP Response has already been committed.
> ERROR - WicketFilter - closing the buffer error
> java.lang.IllegalStateException: Response has already been committed, be
> sure not to write to the OutputStream or to trigger a commit due to any
> other action before calling this method.
> at
> com.evermind.server.http.EvermindHttpServletResponse.sendRedirect(EvermindHttpServletResponse.java:1359)
> at
> org.apache.wicket.protocol.http.WebResponse.redirect(WebResponse.java:232)
> at
> org.apache.wicket.protocol.http.BufferedWebResponse.close(BufferedWebResponse.java:66)
> at
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:403)
> at
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:199)
> at
> com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:623)
> at.....
>
> oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
> at
> com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
> at java.lang.Thread.run(Thread.java:595)
>
> /* Exception Stack Trace - END */
>
> ---------------
> /* Forms onSubmit CURRENT IMPLEMENTATION - resulting in the above
> exception without breaking any flow*/
> protected void onSubmit()
> {
> Resource cResource =
> new
> CertificatePDFResource(certificate.getCertificateId()); //
> ResourceStreamRequestTarget cTarget =
> new
> ResourceStreamRequestTarget(cResource.getResourceStream());
> cTarget.respond(getRequestCycle());
> };
>
> /* EARLIER IMPLEMENTATION of onSubmit() which didnt work on certain
> versions of IE*/
> protected void onSubmit()
> {
> Resource cResource =
> new
> CertificatePDFResource(certificate.getCertificateId()); //
> cResource.onResourceRequested();
> };
>
>
> In the above snippet CertificatePDFResource is an implementation of
> DynamicWebResource, the getResourceState() Implementation is as below..
>
> ------------------
> /** getResourceState() implementation for DynamicWebResource */
>
> protected ResourceState getResourceState() {
> return new ResourceState() {
> protected byte[] pdf;
>
> public String getContentType() {
> return "application/pdf";
> }
>
> public Time lastModifiedTime() {
> // TODO to be re-visited
> return Time.now();
> }
>
> public byte[] getData() {
> return getResourceStream();
> }
>
> protected synchronized byte[] getResourceStream(){
> if (pdf== null) {
> pdf = Utils.getPdf.....
>
> }
> return pdf;
> }
>
> public int getLength() {
> return getResourceStream().length;
> }
> };
>
> Any suggestions/comments would be appreciated.
>
> Thanks in advance,
>
> Farhan.
>
>
--
View this message in context:
http://www.nabble.com/pdf-download---dynamically-generated-pdf-tp18349109p18388544.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]