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

Reply via email to