Thank you very much Stefan, it works perfectly! 2010/10/29 Stefan Lindner <lind...@visionet.de>
> How does your trigger look like? I mean the <a> or <button> or <input > type="submit"> element? Does it trigger a page refresh, means does it start > a request tot he server? Then you still have a problem with cleared session > cookie. > You need something like <div > onclick="openURL(bookmarkableURLWithParameters)"/> or more in detail > > > <div onclick=" window.open('http://url.to.servlet.domain', '', > 'scrollbars=yes,location=no,menuBar=no,resizable=yes,status=no,toolbar=no') > "/> > > No request cycle is triggered, the page stays untouched you can clear the > session cookie as often as you like > > I did not proof this but I thin this could be te right way. > > Stefan > > -----Ursprüngliche Nachricht----- > Von: Alex Zeit [mailto:zeita...@googlemail.com] > Gesendet: Freitag, 29. Oktober 2010 14:22 > An: users@wicket.apache.org > Betreff: Re: Problems displaying a PDF from stream > > I mean going to menu "Clear private data" (in German version it is "Neueste > Chronik löschen"). Yes Cookies are also removed. > For now I implemented my PDF generator as separate Servlet but it has same > behaviour unless I disable caching: > // Set to expire far in the past. > response.setHeader("Expires", "Sat, 6 May 1995 12:00:00 GMT"); > if(request.getHeader("User-Agent").contains("MSIE")){ > // Set IE extended HTTP/1.1 no-cache headers (use addHeader). > response.addHeader("Cache-Control", "post-check=0, > pre-check=0"); > }else{ > // Set standard HTTP/1.1 no-cache headers. > // 29.10.10 OE Not working with IE 7 > response.setHeader("Cache-Control", "no-store, no-cache, > must-revalidate"); > } > // Set IE extended HTTP/1.1 no-cache headers (use addHeader). > response.addHeader("Cache-Control", "post-check=0, pre-check=0"); > // Set standard HTTP/1.0 no-cache header. > response.setHeader("Pragma", "no-cache"); > > I don't really like this workaround with checking User agnet. But it is > only way to make it work properly with Firefox and IE. > > > 2010/10/28 Stefan Lindner <lind...@visionet.de> > > > What do you mean with "After clearing chronik"? Does this mean that > > the session cookie is lost after "After clearing chronik"? > > You may take a look at the generated HTML: > > > > > > > > Onclick=".....?wicket:interface=:5:.............:pdfIcon:pdf::ILinkListener::" > > > > This refers to a version oft he page that is no longer valid after the > > session is lost. Refreshing the page starts a new session and it works > > again. > > You must (I don't know how at the moment) produce a sort of > > bookemarkable url for this case I think. My guess would be to use a > > separate servlet for this. > > > > Stefan > > > > -----Ursprüngliche Nachricht----- > > Von: Alex Zeit [mailto:zeita...@googlemail.com] > > Gesendet: Donnerstag, 28. Oktober 2010 18:21 > > An: users@wicket.apache.org > > Betreff: Re: Problems displaying a PDF from stream > > > > Now it works with IE and this is most important thing. Thank you very > much! > > However the problem with Firefox remains. After clearing chronik while > > Pdf document is open if I click the link comes "page expired", after > > refreshing the main page with link if I click link again comes empty > page. > > > > 2010/10/28 Alex Zeit <zeita...@googlemail.com> > > > > > Thanks a lot Stefan I will try it right now > > > > > > > > > 2010/10/28 Stefan Lindner <lind...@visionet.de> > > > > > >> Try this: > > >> > > >> > > >> > > >> public class MyResourceStreamWriter extends > > >> AbstractResourceStreamWriter { > > >> private static final long serialVersionUID = 1L; > > >> > > >> public MyResourceStreamWriter() { > > >> } > > >> > > >> @Override > > >> public void write(final OutputStream output) { > > >> // !!!!! prduce output here and stream it to > > output > > >> try { > > >> output.flush(); > > >> } catch (Exception e) { > > >> e.printStackTrace(); > > >> } > > >> } > > >> > > >> @Override > > >> public String getContentType() { > > >> return "application/pdf"; > > >> } > > >> } > > >> > > >> > > >> > > >> > > >> > > >> Link<T> pdfLink = new Link<T>("pdf") { > > >> private static final long serialVersionUID = 1L; > > >> @Override > > >> public void onClick() { > > >> ResourceStreamRequestTarget rsrt = new > > >> ResourceStreamRequestTarget(new MyResourceStreamWriter()); > > >> //rsrt.setFileName("file.pdf"); // use this > > >> if yout want your browser to ask you wheter you want to save the > > >> cownloaded PDF in fil e"file.pdf" > > >> getRequestCycle().setRequestTarget(rsrt); > > >> } > > >> }; > > >> > > >> > > >> pdfLink.setPopupSettings(new > > >> PopupSettings(PopupSettings.RESIZABLE > > >> | PopupSettings.SCROLLBARS)); > > >> add(pdfLink); > > >> > > >> > > >> Stefan > > >> > > >> > > >> -----Ursprüngliche Nachricht----- > > >> Von: Alex Zeit [mailto:zeita...@googlemail.com] > > >> Gesendet: Donnerstag, 28. Oktober 2010 15:21 > > >> An: users@wicket.apache.org > > >> Betreff: Re: Problems displaying a PDF from stream > > >> > > >> Yes > > >> > > >> 2010/10/28 Stefan Lindner <lind...@visionet.de> > > >> > > >> > Do you want to open the PDF in a separate window? Klick on some > > >> > button and open a new browser window with pdf? > > >> > > > >> > Stefan > > >> > > > >> > -----Ursprüngliche Nachricht----- > > >> > Von: Alex Zeit [mailto:zeita...@googlemail.com] > > >> > Gesendet: Donnerstag, 28. Oktober 2010 15:14 > > >> > An: users@wicket.apache.org > > >> > Betreff: Problems displaying a PDF from stream > > >> > > > >> > While trying to display a PDF document from stream following > > >> > problems > > >> > arrise: > > >> > IE7: > > >> > Resource can not be displaied at all. > > >> > > > >> > Firefox 3.6.12: > > >> > PDF is displaied but if Chronk is cleared in Firefox while > > >> > document is open then it cannot be displaied again. It is > > >> > possible only after restarting Firefox. > > >> > > > >> > No errors in log. > > >> > > > >> > The code: > > >> > public class PdfGen extends WebResource { > > >> > > > >> > public PdfGen() { > > >> > setCacheable(false); > > >> > } > > >> > > > >> > @Override > > >> > public IResourceStream getResourceStream() { > > >> > IResourceStream resourceStream = new > > >> > AbstractResourceStreamWriter() { > > >> > private static final long serialVersionUID = > > >> > 1934248394380163944L; > > >> > public void write(OutputStream output) { > > >> > testItextDirect(output); > > >> > } > > >> > public String getContentType() { > > >> > return "application/pdf"; > > >> > } > > >> > }; > > >> > return resourceStream; > > >> > } > > >> > > > >> > private void testItextDirect(OutputStream output){ > > >> > try { > > >> > Document document = new Document(); > > >> > PdfWriter.getInstance(document, output); > > >> > document.open(); > > >> > document.add(new Paragraph("Hello World")); > > >> > document.add(new Paragraph(new Date().toString())); > > >> > document.close(); > > >> > } catch (DocumentException de) { > > >> > try { > > >> > throw new IOException(de.getMessage()); > > >> > } catch (IOException e) { > > >> > e.printStackTrace(); > > >> > } > > >> > } > > >> > } > > >> > } > > >> > > > >> > > > >> > in the init() of AuthenticatedWebApplication SharedResource added > > >> > like > > >> > this: > > >> > getSharedResources().add("pdfGen", new PdfGen()); > > >> > > > >> > Any help would be highly appreciated Alex > > >> > > > >> > ----------------------------------------------------------------- > > >> > -- > > >> > -- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > >> > For additional commands, e-mail: users-h...@wicket.apache.org > > >> > > > >> > > > >> > > >> ------------------------------------------------------------------- > > >> -- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > >> For additional commands, e-mail: users-h...@wicket.apache.org > > >> > > >> > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >