On 08.01.2010 16:31, Ian Boston wrote: > We have been trying to implement a Batch method processor (ie a servlet that > performs multiple requests batching the responses up into a single > request/response) in Sling. > > Normally with servlets this would require > requestDispacher.forward(wrappedRequest, wrappedResponse) but this doent work > since Sling unwrapps all request back to a internal > SlingHttpServletRequestImpl object so although you can get hold of the > requestDispatcher, and call the forward method, its almost pointless.
I fear, I do not completely understand the problem. You can provide any SlingHttpServletRequest|Response to the forward method and this instance will be presented to the included servlet. If not the provided instances are given to the included servlet, I would consider this a major issue.... > > Whats the right way of doing this sort of thing in Sling ? I would say that it should be possible to forward multiple times collecting the output -- you would just have to make sure, no output and headers are really written back by the servlets/scripts forwarded to. Thus the wrappedResponse would have to make sure not to set responses headers (by default in Sling included servlets *can* set response headers unlike in the Servlet API, where this is not possible). Regards Felix > > Ian > > BTW, we have also tried Filters registered against the SlingMainSevlet (via > OSGI), adding another top level servlet directly to the httpservice and > adding filters at the http service level before the SlingMainServlet. None > appear to work for all sorts of reason, sadly perfectly valid and to spec.
