Is there any limitation as to what can be set as the path for a sling servlet?
I need a custom sling servlet hosted at a path named "healthcheck" i.e. if I hit <domain port>/ healthcheck it should call that servlet but when I tried this It didn't work.
Tried few other words too but still the same issue. Are single word paths not allowed?
If I prefix the path with another word (e.g /services/...) then it works.
Anybody have any inputs on this behavior?
Solved! Go to Solution.
Views
Replies
Total Likes
Hi,
You can add custom execution paths such as "healthcheck" in your case by following the steps below:
1) Go to http://localhost:4502/system/console/configMgr
2) Search for Apache Sling Servlet/Script Resolver and Error Handler
3) Click on "+" symbol under Execution paths and add your custom execution path. For e.g. /healthcheck/
NOTE: The Execution paths are the paths under which executable scripts will be searched. If a configured value ends with a slash, the whole sub tree is allowed. Without a slash an exact matching script is allowed.
If you hit http://localhost:4502/healthcheck without registering the execution path, you will see the following error:
Error: Requested Path /healthcheck.servlet is not in available search paths
However, though you register the execution path (/healthcheck/) and hit http://localhost:4502/healthcheck , you will still see the following error:
Error: Resource /healthcheck not found
This is because, /healthcheck is a execution search path, where as it is not a resource.
NOTE: sling.servlet.paths are the list of absolute paths under which the servlet is accessible as a resource.
For example, if you register your servlet path in the following way,
"sling.servlet.paths=/healthcheck/healthcheckServlet", it searchs for resource (healthcheckServlet) under execution path (/healthcheck/) and the servlet will be hit as expected without errors.
For more information on how sling servlet works, please refer:
Apache Sling :: Servlets and Scripts
Hope this helps!
Regards,
Views
Replies
Total Likes
Hi,
You need to make a entry in "Apache Sling Servlet/Script Resolver and Error Handler" for /healthcheck, and now you can register your servlet with /healthcheck .
Views
Replies
Total Likes
Hi,
You can add custom execution paths such as "healthcheck" in your case by following the steps below:
1) Go to http://localhost:4502/system/console/configMgr
2) Search for Apache Sling Servlet/Script Resolver and Error Handler
3) Click on "+" symbol under Execution paths and add your custom execution path. For e.g. /healthcheck/
NOTE: The Execution paths are the paths under which executable scripts will be searched. If a configured value ends with a slash, the whole sub tree is allowed. Without a slash an exact matching script is allowed.
If you hit http://localhost:4502/healthcheck without registering the execution path, you will see the following error:
Error: Requested Path /healthcheck.servlet is not in available search paths
However, though you register the execution path (/healthcheck/) and hit http://localhost:4502/healthcheck , you will still see the following error:
Error: Resource /healthcheck not found
This is because, /healthcheck is a execution search path, where as it is not a resource.
NOTE: sling.servlet.paths are the list of absolute paths under which the servlet is accessible as a resource.
For example, if you register your servlet path in the following way,
"sling.servlet.paths=/healthcheck/healthcheckServlet", it searchs for resource (healthcheckServlet) under execution path (/healthcheck/) and the servlet will be hit as expected without errors.
For more information on how sling servlet works, please refer:
Apache Sling :: Servlets and Scripts
Hope this helps!
Regards,
Views
Replies
Total Likes
Excellent response!
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies
Views
Likes
Replies