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]