We generally map HTTP 400, 500, and 404 to an error handler action via the
web.xml like so...

    <error-page>
        <error-code>500</error-code>
        <location>/Error.do</location>
    </error-page>

    <error-page>
        <error-code>404</error-code>
        <location>/InvalidUrl.do</location>
    </error-page>

    <error-page>
        <error-code>400</error-code>
        <location>/InvalidUrl.do</location>
    </error-page>

--Norm

-- 
Norm Deane
MIS Consultant
Vanderbilt University
(615) 322-7855
[EMAIL PROTECTED] 

> -----Original Message-----
> From: Matthew J. Vincent [mailto:[EMAIL PROTECTED] 
> Sent: Monday, January 12, 2004 10:08 AM
> To: Struts Users Mailing List
> Subject: Generic Error Handler
> 
> 
> I searched the archives and I must have missed it.  I want to 
> have a generic JSP or Servlet get invoked when an error 
> occurs in my application.  For example, when I try to clink 
> on a link on one of my pages I get an error
> message:
> 
> HTTP Status 500 - No action instance for path /detailSearch 
> could be created
> 
> Looking at the logs it is obvious why there is an error 
> (because I didn't create the 
> org.jax.mgi.mtb.wi.actions.DetailSearchAction class).  What 
> is the best approach to handle this type of error?  I tried 
> adding the following to my struts-config.xml, but it is not 
> going to the appError.jsp page.
> 
>    <global-exceptions>
>      <exception key="system.error"
>                 type="java.lang.Exception"
>                 path="/appError.jsp"/>
> 
>      <exception key="system.error"
>                 type="java.lang.ClassNotFoundException"
>                 path="/appError.jsp"/>
> 
>    </global-exceptions>
> 
> What is the best way to handle this?  What about other types 
> of errors?  Is there a rule of thumb that everyone follows?
> 
> Sorry for the hopefully easy (probably already asked) question.
> 
> Matt
> 
> 
> Here is an output of the logs:
> 
> SEVERE: No action instance for path /detailSearch could be created
> java.lang.ClassNotFoundException: 
> org.jax.mgi.mtb.wi.actions.DetailSearchAction
>         at 
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappC
> lassLoader.jav
> a:1366)
>         at 
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappC
> lassLoader.jav
> a:1213)
>         at
> org.apache.struts.util.RequestUtils.applicationClass(RequestUt
> ils.java:207)
>         at 
> org.apache.struts.util.RequestUtils.applicationInstance(Reques
> tUtils.java:23
> 1)
>         at 
> org.apache.struts.action.RequestProcessor.processActionCreate(
> RequestProcess
> or.java:326)
>         at
> org.apache.struts.action.RequestProcessor.process(RequestProce
> ssor.java:268)
>         at
> org.apache.struts.action.ActionServlet.process(ActionServlet.j
> ava:1482)
>         at
> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
>         at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
>         at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(Application
> FilterChain.j
> ava:284)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterCh
> ain.java:204)
> 
>         at
> org.jax.mgi.mtb.wi.filters.TimerFilter.doFilter(TimerFilter.java:23)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(Application
> FilterChain.j
> ava:233)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterCh
> ain.java:204)
> 
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> rapperValve.ja
> va:256)
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContex
> t.java:151)
>         at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:564)
>         at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(S
> tandardContext
> Valve.java:24
> 5)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardC
> ontextValve.ja
> va:199)
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContex
> t.java:151)
>         at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:564)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:195
> )
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContex
> t.java:151)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:164
> )
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContex
> t.java:149)
>         at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:564)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java
> :156)
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContex
> t.java:151)
>         at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:564)
>         at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
>         at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.
> java:211)
>         at
> org.apache.coyote.http11.Http11Processor.process(Http11Process
> or.java:805)
>         at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle
> r.processConne
> ction(Http11P
> rotocol.java:696)
>         at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoi
> nt.java:605)
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.jav
> a:677)
>         at java.lang.Thread.run(Thread.java:534)
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to