How exception handling is provided in struts?
Answers were Sorted based on User's Feedback
to handle the errors:
in struts project to handle the error objet by using
ActionError object and to handle the errors by using
ActionErrors object.
for suppose
ActionError ae1=new ActionError("err.one");
ActionError ae2=new ActionError("err.two");
Action Errors aes=new ActionErrors();
aes.add(ae1);
aes.add(ae2);
saveErrors(request,aes);//store the errors object in request
object
to handle exception:
1)using try and cach blocks
2)using declarative exception handling technique
to handle the exceptions by using global exceptons tag in
struts-config.xml
<global-exceptions>
<exception key="gen.err"
type="java.lang.ClassNotFoundException" path="/gen.jsp"/>
whenever that exception will be came it executes the
gen.jsp page.
| Is This Answer Correct ? | 12 Yes | 0 No |
Answer / qim2010
There are two approaches available for the exception
handling in struts.
Declarative:
Exceptions are defined in the struts-config.xml file and if
the exception occurs the control is automatically passed to
the appropriate error page. The <exception> tag is used to
define the exception in the struts-config.xml file.For
Example : (( If RuntimeException in SaveEmpAaction class ,
control goes to exception.jsp)
<action path="/saveEmp"
type="com.techfaq.SaveEmpAaction"
input="/empform.jsp" >
<exception key="error.system"
type="java.lang.RuntimeException" path="/exception.jsp" />
</action>
Where
Key: The key defines the key present in
MessageResources.properties file to describe the exception
occurred.
Type: The class of the exception occurred.
Path: The page where the control is to be followed in case
exception occurred.
Handler: The exception handler which will be called before
passing the control to the file specified in path attribute
OR
Defining the Exceptions Globally for the struts-config.xml :
( If RuntimeException in any Action class , control goes to
exception.jsp)
<global-exceptions>
<exception key="error.system"
type="java.lang.RuntimeException" path="/exception.jsp" />
</global-exceptions>
Programmatic:
In this approach the exceptions are caught using normal java
language try/catch block and instead of showing the
exception some meaningful messages are displayed. In this
approach the flow of control is also maintained by the
programs. The main drawback of the approach is the developer
has to write the code for the flow of the application.
| Is This Answer Correct ? | 4 Yes | 1 No |
What is the difference between requestaware and servletrequestaware interface?
what is BUSINESS DELIGATE PATTERN,DAO,VO,DTO?
6 Answers BOB Technologies, TCS,
Can we use struts and spring together?
what is tiles in struts?
What are the steps involved in creating a strut application?
how to implement singletun design patteren in struts?
Why do we use struts?
What are the core classes of struts framework? Explain
What do you mean by actionmapping?
What is request processor and how does it relates to action mapping?
how handle when client send multiple request at atime for single servlet
Hi frnds iam new to struts wen iam running helloworld application using struts iam getting the error as belwo kindly any one can solve it plzz .....thanks in advance......... Nov 18, 2009 9:27:46 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:StrutsExample1' did not find a matching property. Nov 18, 2009 9:27:46 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Struts1' did not find a matching property. Nov 18, 2009 9:27:46 PM org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\sys tem32;C:\WINDOWS;C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOW S\System32\Wbem;C:\Program Files\Java\jdk1.5.0_18\bin; Nov 18, 2009 9:27:46 PM org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8081 Nov 18, 2009 9:27:46 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 678 ms Nov 18, 2009 9:27:46 PM org.apache.catalina.core.StandardService start INFO: Starting service Catalina Nov 18, 2009 9:27:46 PM org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.20 Nov 18, 2009 9:27:46 PM org.apache.catalina.core.ApplicationContext log INFO: Marking servlet action as unavailable Nov 18, 2009 9:27:46 PM org.apache.catalina.core.ApplicationContext log SEVERE: Error loading WebappClassLoader delegate: false repositories: /WEB-INF/classes/ ----------> Parent Classloader: org.apache.catalina.loader.StandardClassLoader@ca2dce org.apache.struts.action.ActionServlet java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet at org.apache.catalina.loader.WebappClassLoader.loadClass(Webap pClassLoader.java:1387) at org.apache.catalina.loader.WebappClassLoader.loadClass(Webap pClassLoader.java:1233) at org.apache.catalina.core.StandardWrapper.loadServlet(Standar dWrapper.java:1095) at org.apache.catalina.core.StandardWrapper.load(StandardWrappe r.java:993) at org.apache.catalina.core.StandardContext.loadOnStartup(Stand ardContext.java:4149) at org.apache.catalina.core.StandardContext.start(StandardConte xt.java:4458) at org.apache.catalina.core.ContainerBase.start(ContainerBase.j ava:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.jav a:722) at org.apache.catalina.core.ContainerBase.start(ContainerBase.j ava:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine .java:443) at org.apache.catalina.core.StandardService.start(StandardServi ce.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer .java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:583 ) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:2 88) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:41 3) Nov 18, 2009 9:27:46 PM org.apache.catalina.core.StandardContext loadOnStartup SEVERE: Servlet /Struts1 threw load() exception java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet at org.apache.catalina.loader.WebappClassLoader.loadClass(Webap pClassLoader.java:1387) at org.apache.catalina.loader.WebappClassLoader.loadClass(Webap pClassLoader.java:1233) at org.apache.catalina.core.StandardWrapper.loadServlet(Standar dWrapper.java:1095) at org.apache.catalina.core.StandardWrapper.load(StandardWrappe r.java:993) at org.apache.catalina.core.StandardContext.loadOnStartup(Stand ardContext.java:4149) at org.apache.catalina.core.StandardContext.start(StandardConte xt.java:4458) at org.apache.catalina.core.ContainerBase.start(ContainerBase.j ava:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.jav a:722) at org.apache.catalina.core.ContainerBase.start(ContainerBase.j ava:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine .java:443) at org.apache.catalina.core.StandardService.start(StandardServi ce.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer .java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:583 ) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:2 88) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:41 3) Nov 18, 2009 9:27:46 PM org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8081 Nov 18, 2009 9:27:46 PM org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 Nov 18, 2009 9:27:46 PM org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/31 config=null Nov 18, 2009 9:27:46 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 616 ms