Hi - 

I'd like to create a custom error handler that will handle exceptions thrown
from scripts (at a specific path... ex: /content/api/*) and I want
errors/exceptions from all other servlets/scripts to be handled in the
default way (when no custom error handlers are set) using
DefaultErrorHandlerServlet.

For this purpose, I created a Servlet and mapped it to
"/apps/sling/servlet/errorhandler/default"

/**
 *
 * @scr.component metatype="no" immediate="true"
 * @scr.service interface="javax.servlet.Servlet"
 *
 * This is the custom error handler servlet
 *
 * @scr.property name="sling.servlet.paths"
value="/apps/sling/servlet/errorhandler/default"
 * @scr.property name="sling.servlet.prefix" value="0"
 *
 *
 */
public class CustomExceptionHandlerServlet extends GenericServlet {

    /**
     * @scr.reference policy="static"
     */
    protected DefaultErrorHandlerServlet theDefaultErrorHandlerServlet;


     @Override
    public void service(ServletRequest request, ServletResponse response)
throws IOException {

        SlingHttpServletRequest slingRequest = (SlingHttpServletRequest)
request;
        SlingHttpServletResponse slingResponse = (SlingHttpServletResponse)
response;

        String resourcePath =
request.getRequestPathInfo().getResourcePath();
        if(resourcePath.contains("/content/api"))
        {
            // perform custom processing.
        }
        else
        {
            // Somehow forward to the default error handler servlet
            // or call the default error handler servlet, may be this way ?
            theDefaultErrorHandlerServlet.service(request, response);

        }
        
     }

}


I have two questions:

1. In Felix, I see that there's an active component called - "
org.apache.sling.servlets.resolver.internal.defaults.DefaultErrorHandlerServ
let" available. So, I've added a reference to it from my
CustomExceptionHandlerServlet class. But for some reason, this dependency is
"unsatisfied". Not sure if I am not doing this wiring correctly. Please
advise. 

2. If I can't wire the DefaultErrorHandlerServlet as in #1 or if its not the
approach to take, is there a way to forward processing of the error to the
default error handler servlet?

Thanks
Praveen 


 


**
This e-mail message is intended only for the designated recipient(s) named 
above. The information contained in this e-mail and any attachments may be 
confidential or legally privileged. If you are not the intended recipient, you 
may not review, retain, copy, redistribute or use this e-mail or any attachment 
for any purpose, or disclose all or any part of its contents.  If you have 
received this e-mail in error, please immediately notify the sender by reply 
e-mail and permanently delete this e-mail and any attachments from your 
computer system.

Reply via email to