public class InitListener
extends java.lang.Object
ISCInit.go()
early in your bootstrap code (eg, from the top of your main()
method). If you are running inside a servlet engine, install the following listener in your web.xml. Ideally this should be the first listener registered in web.xml because part of the init logic exports database connections configured via server.properties via JNDI for consumption by other frameworks (Spring, Hibernate, etc). See also below for other rationale related to Spring.
InitListener
, which is a ServletContextListener
:<listener> <listener-class>com.isomorphic.base.InitListener</listener-class> </listener>
The solution to this is to use the InitListener
, and to ensure that it is declared in your web.xml
file before the Spring ContextLoaderListener
. The Servlet 2.3 spec states (SRV.10.3.3):
"During Web application execution, listeners are invoked in the order of their registration."
Therefore, declaring the SmartClient listener before the Spring one ensures that things run in the correct order in Servlet 2.4-compatible containers, and in those Servlet 2.3 containers that enforce the rule of running listeners before initializing filters or servlets.