Hi Ben, great that you've solved the issue already.
Indeed, with that method you tell Wicket not to schedule an AjaxRequestHandler. Sven Am 23. August 2019 00:30:26 MESZ schrieb Benjamin Chew <bc...@smarthealth.com>: >I solved this! I added this to the class and it worked: > >@Override >public boolean rendersPage() { > return false; >} > >Thanks, >Ben > > >On Thu, Aug 22, 2019 at 1:33 PM Benjamin Chew <bc...@smarthealth.com> >wrote: > >> I forgot to add that this iframe is loaded in an ajax modal of base >class >> GenericPanel. >> >> Thanks, >> Ben >> >> >> On Thu, Aug 22, 2019 at 1:04 PM Benjamin Chew <bc...@smarthealth.com> >> 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 ***/ >>> >>