Thanks Dominik, I think that does the trick. However it contradicts the documentation under "URL Decomposition" at http://sling.apache.org/site/sling-api.html, and even worse, makes my program less elegant! :) In the Sling API, the resource is said to not need an extension to register as the located resource.
Is this by design, or is this a bug? Thanks, ------------------------------------------ Branden Visser LMS Application Programmer - Information Systems Services Information Technology Services University of Windsor -----Dominik Süß <[email protected]> wrote: ----- To: [email protected], [email protected] From: Dominik Süß <[email protected]> Date: 08/24/2009 02:54PM Subject: Re: Script Resolution to non-existing resource Hi Branden, it might help you to have a look at: http://dev.day.com/microsling/content/blogs/main/cheatsheet.html There you can see how URLs are composed/decomposed. For your case /content/portal/users/admin/pages/home/widgets/hello_world.html/widget.html might do the trick ;) HTH Best regards, Dominik On Mon, Aug 24, 2009 at 8:46 PM, Branden Visser <[email protected]> wrote: Hi all, I'm trying to access a resource, then append a suffix to the URI. The problem is that the GET servlet seems to be taking my full URI, and returning a 404, even though there is a valid resource found in a substring of the URL. Here is what I have: URI: /content/portal/users/admin/pages/home/widgets/hello_world/widget.html The idea is that /widget.html is the suffix (there is no 'widget' resource!), and therefore Sling will attempt to execute hello_world. hello_world has sling:resourceType="portal/widgets/url/url", and the following file exists: /apps/portal/widgets/url/url/GET.esp. However, when I hit the URI above, I get 404. My intention is to make GET.esp create the resource "widget" below hello_world automatically if it does not exist. >From what I understand from the URL decomposition and resource resolution [1], >since /widget does not exist, hello_world should be the mapped resource, while >/widget.html is the suffix. Correct? Here is my request breakdown: 0 (2009-08-24 14:33:17) Starting Request Processing 0 (2009-08-24 14:33:17) Method=GET, PathInfo=/content/portal/users/admin/pages/home/widgets/hello_world/widget.html 0 (2009-08-24 14:33:17) Starting ResourceResolution 9 (2009-08-24 14:33:17) URI=/content/portal/users/admin/pages/home/widgets/hello_world/widget.html resolves to Resource=NonExistingResource, path=/content/portal/users/admin/pages/home/widgets/hello_world/widget.html, elapsed = 9ms 9 (2009-08-24 14:33:17) Resource Path Info: SlingRequestPathInfo: path='/content/portal/users/admin/pages/home/widgets/hello_world/widget.html', selectorString='null', extension='null', suffix='null' 9 (2009-08-24 14:33:17) Starting ServletResolution 9 (2009-08-24 14:33:17) Starting resolveServlet(NonExistingResource, path=/content/portal/users/admin/pages/home/widgets/hello_world/widget.html) 9 (2009-08-24 14:33:17) Using servlet org.apache.sling.servlets.get.DefaultGetServlet, elapsed = 0ms 9 (2009-08-24 14:33:17) URI=/content/portal/users/admin/pages/home/widgets/hello_world/widget.html handled by Servlet=org.apache.sling.servlets.get.DefaultGetServlet, elapsed = 0ms 9 (2009-08-24 14:33:17) Applying request filters 9 (2009-08-24 14:33:17) Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter 9 (2009-08-24 14:33:17) Starting org.apache.sling.servlets.get.DefaultGetServlet#0 9 (2009-08-24 14:33:17) org.apache.sling.servlets.get.DefaultGetServlet#0, elapsed = 0ms 10 (2009-08-24 14:33:17) Starting handleError:status=404 10 (2009-08-24 14:33:17) Using handler Sling Default Error Handler Servlet, elapsed = 0ms 10 (2009-08-24 14:33:17) Error handler finished, elapsed = 0ms It's clear that the GetServlet is using the full URI, and not attempting to parse a suffix. Any ideas? Thanks, Branden [1] http://sling.apache.org/site/sling-api.html
