I have an issue with a standalone Tomcat server (not linked with Apache).
When Tomcat starts up, the init() method of the servlet is getting called twice, i.e., two
Tomcat is autodeploying anything in webapps, and also deploying according to server.xml. Just remove your webapp from webapps to avoid double loading.
If the init() method fails, it may be called again on a subsequent get. Did you check the catalina.out file to make sure that the init() call is not being aborted for some reason?
I would set a breakpoint in the init() method and then look at the stack to see where the calls are coming from.
There is a bug in your code. Your singleton is not thread-safe. That getInstance() method should be synchronised. Otherwise you are liable to construct multiple instances.