OptingServlet was what I needed.

Thanks all !!


On 7/29/11 8:32 AM, "Justin Edelson" <[email protected]> wrote:

You can use OptingServlet with a JSP.

On Jul 29, 2011, at 7:09 AM, sam " <[email protected]> wrote:

> If OSGi gets hairy, just store jsp in the repository.
>
> /apps/sling/servlet/errorhandler/Throwable.jsp
>
> look here:
> http://sling.apache.org/site/errorhandling.html
>
>
>
> On Fri, Jul 29, 2011 at 1:34 AM, Eric Norman <[email protected]>wrote:
>
>> 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.
>>>
>>

***
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.

Reply via email to