On Thursday 28 July 2016 20:45:06 Roy Teeuwen wrote:
> Already tried that one ;) it returns a non existing resource with the path
> /content/dam/nice-image.cdn.jpg/modification-date/20160815/nice-image.jpg

Hi Roy,

that means your resource is not found. Make sure /content/dam/nice-image.jpg 
is available.

What's the reason for forwarding instead of reading/serving the resource from 
the repository in your current servlet?

Regards,
O.

> Greetings,
> Roy
> 
> > On 28 Jul 2016, at 18:35, Jason Bailey <jason.bai...@sas.com> wrote:
> > 
> > I'm under the understanding that it is;
> > 
> > request.getResource().getPath()
> > 
> > -----Original Message-----
> > From: Roy Teeuwen [mailto:r...@teeuwen.be]
> > Sent: Thursday, July 28, 2016 12:31 PM
> > To: users@sling.apache.org
> > Subject: Getting the actual resource from a request
> > 
> > Hey all,
> > 
> > I am creating a SlingServlet that will work by both using a selector and a
> > suffix. The resource is for example /content/dam/image.jpg and the actual
> > url will be
> > /content/dam/nice-image.cdn.jpg/modification-date/20160815/nice-image.jpg
> > 
> > What is the most easy way to get the actual resource path again from the
> > SlingHttpServletRequest? Currently I am doing the following but I find it
> > a bit cumbersome:
> > 
> > private String getResourcePath(SlingHttpServletRequest request) {
> > 
> >    String requestUrl = request.getRequestPathInfo().getResourcePath();
> >    int endIndex =
> >    requestUrl.lastIndexOf(request.getRequestPathInfo().getSuffix());
> >    String resourcePathWithSelector = requestUrl.substring(0, endIndex);
> >    endIndex =
> >    resourcePathWithSelector.lastIndexOf(request.getRequestPathInfo().getS
> >    electorString() + "." + request.getRequestPathInfo().getExtension());
> >    return resourcePathWithSelector.substring(0, endIndex) +
> >    request.getRequestPathInfo().getExtension();> 
> > }
> > 
> > Is there an easier way or is parsing it like this the only way?
> > 
> > Also after I got the actual resourcePath, I tried doing the following, but
> > this doesn’t seem to work, any clue on why?
> > 
> > @Override
> > protected void doGet(SlingHttpServletRequest request,
> > SlingHttpServletResponse response) throws ServletException, IOException {> 
> >      RequestDispatcherOptions opts = new RequestDispatcherOptions();
> >      opts.setReplaceSelectors("");
> >      String resourcePath = getResourcePath(request);
> >      RequestDispatcher dispatcher =
> >      request.getRequestDispatcher(resourcePath, opts); if (dispatcher !=
> >      null) {
> >      
> >          dispatcher.forward(request, response);
> >      
> >      }
> > 
> > }
> > 
> > I would expect that the previous would actually just forward it to the
> > actual image being fetched from the getResourcePath but it just gives me
> > a 404 not found (I checked the getResourcePath and it does return
> > /content/dam/nice-image.jpg)
> > 
> > Thanks!
> > Roy


Reply via email to