Thanks, Sven.

And thanks Ernesto for writing that example in the first place!

Ben


On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
[email protected]> wrote:

> Hi,
>
> Thanks for reporting this. I will fix the example and adapt it to wicket
> 8.x.
>
> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew <[email protected]>
> wrote:
>
> > Hi,
> >
> > I'm pretty new to Wicket, and am trying to figure out how to stream a PDF
> > into an iFrame. I've searched for a solution and come across Ernesto's
> > DocumentInlineFrame class here:
> >
> >
> >
> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
> >
> > Since IResourceListener is no longer a part of Wicket 8, I've modified
> the
> > class in these ways:
> > 1) The class implements IRequestListener
> > 2) Return urlForListener(null) in getURL()
> > 3) Renamed onResourceRequested() to onRequest()
> >
> > But I'm getting an error:
> > ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected error
> occurred
> > java.lang.IllegalStateException: Committed
> >
> > The code and full stack trace are below. Any ideas on what I'm doing
> wrong?
> >
> > Thanks,
> > Ben
> >
> > /*** CODE ***/
> > public class DocumentInlineFrame extends WebMarkupContainer implements
> > *IRequestListener* {
> >     private static final long serialVersionUID = 1 L;
> >
> >     private IResource documentResource;
> >
> >     /**
> >      * Constructor receiving an IResourceStream..
> >      *
> >      * @param id
> >      * @param stream
> >      */
> >     public DocumentInlineFrame(String id, IResourceStream stream) {
> >         this(id, new ResourceStreamResource(stream));
> >     }
> >
> >     /**
> >      * Constructor receiving an IResource..
> >      *
> >      * @param id
> >      * @param resourceListener
> >      */
> >     public DocumentInlineFrame(final String id, IResource
> documentResource)
> > {
> >         super(id);
> >         this.documentResource = documentResource;
> >     }
> >
> >     /**
> >      * Gets the url to use for this link.
> >      *
> >      * @return The URL that this link links to
> >      */
> >     protected CharSequence getURL() {
> >         //return urlForListener(new PageParameters());
> >         *return urlForListener(null);*
> >     }
> >
> >     /**
> >      * Handles this frame's tag.
> >      *
> >      * @param tag the component tag
> >      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
> >      */
> >     @Override
> >     protected void onComponentTag(final ComponentTag tag) {
> >         checkComponentTag(tag, "iframe");
> >
> >         // Set href to link to this frame's frameRequested method
> >         CharSequence url = getURL();
> >
> >         // generate the src attribute
> >         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> >
> >         super.onComponentTag(tag);
> >     }
> >
> >     @Override
> >     protected boolean getStatelessHint() {
> >         return false;
> >     }
> >
> >     @Override
> >     public void onRequest() {
> >
> >
> > *RequestCycle requestCycle = RequestCycle.get();        Attributes
> > attributes = new Attributes(requestCycle.getRequest(),
> > requestCycle.getResponse(), null);
> > this.documentResource.respond(attributes);*
> >     }
> > }
> > /*** END CODE ***/
> >
> > /*** STACK TRACE ***/
> > Aug 22 12:37:54 WARN  RequestCycleExtra  -
> ********************************
> > Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
> > Unexpected error occurred
> > java.lang.IllegalStateException: Committed
> > at org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
> > at
> >
> >
> org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
> > at org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
> > at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
> > at org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
> > at org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
> > at
> >
> >
> org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
> > at
> >
> >
> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
> > at
> >
> >
> org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
> > at
> >
> >
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
> > at
> >
> >
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > at
> >
> >
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > at
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > at
> >
> >
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > at
> >
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > at
> >
> >
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > at
> >
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > at
> >
> >
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > at
> > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > at
> >
> >
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > at
> >
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > at
> >
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > at
> > org.eclipse.jetty.io
> > .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > at
> >
> >
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > at
> >
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > at
> >
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > at java.lang.Thread.run(Thread.java:745)
> > Aug 22 12:37:54 ERROR org.apache.wicket.request.cycle.RequestCycle  -
> > Exception retry count exceeded
> > java.lang.IllegalStateException: STREAM
> > at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
> > at
> >
> >
> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
> > at
> >
> >
> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
> > at
> >
> >
> org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
> > at
> >
> >
> org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
> > at
> >
> >
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
> > at
> >
> >
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > at
> >
> >
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > at
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > at
> >
> >
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > at
> >
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > at
> >
> >
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > at
> >
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > at
> >
> >
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > at
> > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > at
> >
> >
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > at
> >
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > at
> >
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > at
> > org.eclipse.jetty.io
> > .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > at
> >
> >
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > at
> >
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > at
> >
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > at java.lang.Thread.run(Thread.java:745)
> > /*** END STACK TRACE ***/
> >
>
>
> --
> Regards - Ernesto Reinaldo Barreiro
>

Reply via email to