When wil use singleton class in Struts
Answers were Sorted based on User's Feedback
Answer / dsr
The Action classes are singleton classes that are
instantiated once per class type per JVM, and all requests
for a specific action are routed through the same Action
class instance.
Is This Answer Correct ? | 21 Yes | 7 No |
Answer / avani
Struts will create a single instance of the Action and
allow multiple threads to invoke execute(). This allows for
faster request processing, as the framework is not
continually creating new Action instances to handle each
request. But because a single object is shared between
multiple threads, you must observe proper threading
considerations, as other threads are likely to pummel
instance variables that hold state in the action.
Is This Answer Correct ? | 10 Yes | 2 No |
Sorry,
I posted the wrong answer Multiple instances of Action
Classes will create for each request. It will not create
multiple instances of Action class,
It will create only single object and uses that object
Is This Answer Correct ? | 3 Yes | 0 No |
Answer / harikrishna rapuri
Suppose if u give more 300 requests at a time struts based
webapplication,in that time some servers(tomcat..etc)
creates another ActionServlet object .This is violation of
the Servlet Specification(Servlet behavior is single
instance and multi therading).So that struts frame work
designers use Actionservlet as a Sigleton class.
Is This Answer Correct ? | 5 Yes | 2 No |
No, It will create Instance of Action Class for each
request, internally it will use Single-ton Design pattern
for the ActionServlet.
In Action class we will actully write business logic, so
Action class is not SingleTon only ActionServlet is singleton
Is This Answer Correct ? | 3 Yes | 2 No |
Answer / nikel
In struts 1.x version Action class follows Single Instance Multiple Threaded model.hence WebContainer creates object for a Action class per Session basis.so Action class is not ThreadSafe.But we can make it ThreadSafe by Synchronization mechanism.
But in Struts 2.x version Action class obj is created by WebContainer per request basis.So Action class is always threadsafe.
Is This Answer Correct ? | 1 Yes | 0 No |
Answer / vitthal
Hi guys please help me !
I am developing struts 2 web application, i have problem about ACTION class object creation ,here ACTION class object create for every new request .How can i avoid this process
Is This Answer Correct ? | 0 Yes | 0 No |
life cycle of struts?
14 Answers HCL, iGate, Scope International,
How to get data from the velocity page in a action class?
What is the purpose of @emailvalidator?
What are the classes used as part of struts framework ?
What is difference between spring and struts?
How can we write our own interceptor and map it for action?
What is structs 2 validation framework?
Explain about the <html:base> tag?
How duplicate form submission can be controlled in struts?
how can you switch onemodule to another module by switch action class plz explain with exapmle?
1 Answers Atos Origin, HeadStrong, Satyam,
What is the use of Struts.xml configuration file?
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