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