I have deployed a struts-based application in weblogic server as an EAR file. I have a servlet that extends ActionServlet. In its init() method I have put some important start up code and in its destroy method, I have put shutdown code. I am loading that servlet on start up in web.xml. Hence its init() method would be getting called on server start up. But we are encountering a strange error
Whenever we deploy a new EAR file in weblogic, the server is starting and the servlet's init() method is getting called. But then immediately after the server starts, destroy of that servlet is getting called and the shutdown code is running. Then again init() is getting called and the start up code gets executed again. This is causing problems as our start up code starts an Orbix daemon and should be executed exactly once. I think what is happening is it is creating an instance of the servlet on start up, then after the server starts, it is destroying that instance and then creating a new instance. This problem happens ONLY when a fresh EAR is deployed. It does not happen when we start the server second time or third time after the EAR is deployed.
Also this problem does not occur when we deploy the web app as a separate WAR file, happens only when deployed as a EAR file and on fresh deployment
We are using weblogic 8.1 SP 2
Has anyone encountered a similar problem? Where else do you think is a reliable place to put our start up code and shut down code in a struts application?