I haven't tried this, but it seems like implementing the OptingServlet interface may do what you need.
OptingServlet is described briefly @ http://sling.apache.org/site/servlets.html Regards, Eric On Thu, Jul 28, 2011 at 9:04 PM, Bethoju, Praveen <[email protected]>wrote: > I tried using sling.servlet.resourceTypes instead of the slingservlet.paths > as suggested but I still have my component's ( CustomExceptionHandlerServlet > ) status = "unsatisfied". I think this makes my component unavailable as a > replacement to the default error handler. > > The CustomExceptionHandlerServlet servlet is a part of my OSGI bundle. And > the DefaultErrorHandlerServlet provided by Sling is a part of > org.apache.sling.servlets.resolver bundle. Do I need to add > org.apache.sling.servlets.resolver.* to the import-package definition of my > bundle ? > > My Maven bundle plugin configurations for my OSGI bundle (CUUtilities) > looks like this .. > > <plugin> > <groupId>org.apache.felix</groupId> > <artifactId>maven-bundle-plugin</artifactId> > <extensions>true</extensions> > <configuration> > <instructions> > > <Bundle-SymbolicName>org.consumersunion.cq.CUUtilities</Bundle-SymbolicName> > > <Bundle-Activator>org.consumersunion.cq.Activator</Bundle-Activator> > <Export-Package> > > > com.day.cu.creator.*,org.consumersunion.*,org.consumerreports.*;version="${project.version}",com.emeta.*,org.cu.*,org.jdom.*,com.opensymphony.oscache.*;version="2.1",com.google.*;version="1.0",org.codehaus.jackson.*,net.sf.ehcache.* > </Export-Package> > > <Import-Package>*;resolution:=optional</Import-Package> > <Bundle-License>n/a</Bundle-License> > <Bundle-Copyright>Copyright (c) Consumers Reports > 2011. All Rights Reserved.</Bundle-Copyright> > > <excludeDependencies>*;scope=provided|runtime</excludeDependencies> > </instructions> > </configuration> > </plugin> > > Thanks for any help. > - Praveen > > > On 7/28/11 8:35 PM, "sam "" <[email protected]> wrote: > > can you try @scr.property sling.servlet.resourceTypes = > "sling/servlet/errorhandler/default" > ? > > > > On Thu, Jul 28, 2011 at 4:08 PM, Bethoju, Praveen <[email protected] > >wrote: > > > 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. > > > > > *** > Scanned > > > > ** > 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. >
