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, "&", "&")); > > > > 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 >
