you cant do something like that (dispatch())
Because you shouldnt render to the http response yourself.
What you can do stream the result your self (getting the url) and then add
the content to the wicket WebResponse

johan


On Wed, Jun 25, 2008 at 1:28 AM, krisNog <[EMAIL PROTECTED]> wrote:

>
> Hello everyone!
>
> I have a question regarding external servlets. I have a panel that I would
> like to stream content into from an external servlet. The overridden
> onRender method I'm using for the Panel is shown below where "/whatever" is
> the servlet that is outputting some arbitrary HTML that I would like
> rendered in my wicket panel. I know this isn't the "proper" way of doing
> things but I have no control over the external servlet and need to
> incorporate its output into my wicket panel...
>
> My problem.... the code below dispatches to the servlet and the servlet
> begins streaming out of sequence from the wicket panel. So the html from
> the
> servlet starts streaming then the wicket page starts streaming and the
> servlet html isn't within my wicket panel and then I start getting errors
> (shown after the onRender method)...
>
> Please let me know if I'm not being clear enough I'd be happy to elaborate!
>
> protected void onRender(MarkupStream markupStream) {
>
>            ServletWebRequest servletWebRequest = (ServletWebRequest)
> getRequest();
>            HttpServletRequest request =
> servletWebRequest.getHttpServletRequest();
>
>            WebResponse webResponse = (WebResponse) getResponse();
>            HttpServletResponse response =
> webResponse.getHttpServletResponse();
>
>            RequestDispatcher dispatcher =
> request.getRequestDispatcher("/whatever");
>            try {
>                        dispatcher.include(request, response);
>                        response.flushBuffer();
>
>            } catch (ServletException e1) {
>                        // TODO Auto-generated catch block
>                        e1.printStackTrace();
>                } catch (IOException e1) {
>                        // TODO Auto-generated catch block
>                        e1.printStackTrace();
>                }
> }
>
>
> Error stack trace:
>
> ERROR - WicketFilter               - closing the buffer error
> java.lang.IllegalStateException: getWriter can't be used after
> getOutputStream was invoked
>        at
>
> org.apache.jetspeed.aggregator.impl.HttpBufferedResponse.getWriter(HttpBufferedResponse.java:68)
>        at
>
> javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:112)
>        at
> org.apache.wicket.protocol.http.WebResponse.write(WebResponse.java:355)
>        at
>
> org.apache.wicket.protocol.http.BufferedWebResponse.close(BufferedWebResponse.java:73)
>        at
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:391)
>        at
>
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:199)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at
>
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
>        at
>
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
>        at
>
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
>        at
>
> org.apache.jetspeed.dispatcher.JetspeedRequestDispatcher.include(JetspeedRequestDispatcher.java:73)
>        at
>
> org.apache.wicket.protocol.http.portlet.WicketPortlet.processRequest(WicketPortlet.java:519)
>        at
>
> org.apache.wicket.protocol.http.portlet.WicketPortlet.doView(WicketPortlet.java:416)
>        at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247)
>        at javax.portlet.GenericPortlet.render(GenericPortlet.java:175)
>        at
>
> org.apache.jetspeed.factory.JetspeedPortletInstance.render(JetspeedPortletInstance.java:103)
>        at
>
> org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:277)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at
>
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
>        at
>
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
>        at
>
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
>        at
>
> org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:273)
>        at
>
> org.apache.jetspeed.container.invoker.ServletPortletInvoker.render(ServletPortletInvoker.java:140)
>        at
>
> org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:119)
>        at
>
> org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPortlet(JetspeedPortletContainerWrapper.java:121)
>        at
>
> org.apache.jetspeed.aggregator.impl.RenderingJobImpl.execute(RenderingJobImpl.java:271)
>        at
>
> org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(PortletRendererImpl.java:228)
>        at
>
> org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:147)
>        at
>
> org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:143)
>        at
>
> org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggregatorImpl.java:78)
>        at
>
> org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.java:46)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.aggregator.HeaderAggregatorValve.invoke(HeaderAggregatorValve.java:53)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.decoration.DecorationValve.invoke(DecorationValve.java:144)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.resource.ResourceValveImpl.invoke(ResourceValveImpl.java:130)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:184)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:109)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.container.PageHistoryValve.invoke(PageHistoryValve.java:108)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:248)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> com.bluenog.portalext.pipeline.customvalve.impl.CustomValveImpl.invoke(CustomValveImpl.java:61)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginValidationValveImpl.java:159)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(PasswordCredentialValveImpl.java:150)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:170)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:138)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at javax.security.auth.Subject.doAsPrivileged(Subject.java:454)
>        at
> org.apache.jetspeed.security.JSSubject.doAsPrivileged(JSSubject.java:179)
>        at
>
> org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:132)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:67)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:126)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
>        at
>
> org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:146)
>        at
> org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:227)
>        at
> org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:242)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at
>
> org.apache.jetspeed.engine.servlet.XXSUrlAttackFilter.doFilter(XXSUrlAttackFilter.java:52)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
>        at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>        at
>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
>        at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>        at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>        at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
>        at
>
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>        at
>
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>        at
>
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>        at
>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
>        at java.lang.Thread.run(Thread.java:595)
>
>
> --
> View this message in context:
> http://www.nabble.com/Output-streams-from-external-servlet-tp18102120p18102120.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to