Inicialização dupla

Fiz um servlet que implementa ServletContextListener, coloquei em seu método contextInitialized() um System.out.println(“Contexto iniciado”), para mostrar uma mensagem quando o contexto da aplicação for inicializado (ao ser aberto o Tomcat por ex.).

Funciona normal, a mensagem aparece no console do Tomcat (o meu é 4.0.3), porém, ela aparece duas vezes, assim como qualquer mensagem que eu coloque nesse método.

Isto é, tá inciando duas vezes, como fazer para evitar isso? Apesar do contexto funcionar normalmente, estou carregando alguns atributos e fazendo duas vezes está se tornando lento.

abraços,

o tomcat é fogo mesmo!

eu tenho o mesmissimo problema, soh que nao com o ServletContextListener.

Eu tenho uma servlet que esta com o <load-on-startup> ligado, e o init(ServletConfig) dela é chamada duas vezes quando meu tomcat inicia!

Eu achava que era apenas alguma configuração minhas, ma ja que agora voce esta falando, tenho a impressao que o tomcat starta o webapp, derruba, e depois starta novamente!

Voce podia me fazer um favor? da um System.out.prbntln() tambem na chamada do contextDestroyed() da sua servlet que eh listener. Ve se imprime alguma coisa entre as duas inicializacoes.

Se imprimir, eh sinal que o tomcat liga e derruba um webapp, antes de ligar finalmente…

Pois é Paulo, eu já tinha colocado a mensagem “contexto terminado” no contextDestroyed() mas ela não aparece, ele NÃO derruba uma vez para iniciar a segunda. Na verdade, acho que ele fica com duas abertas, pois quando chamo o shutdown do Tomcat, ele mostra a mensagem “contexto terminado” duas vezes !

Imagino que a solução esteja em algum dos xml´s pois em um curso que fiz o Tomcat do instrutor não fazia isso.

Tem outra coisa, veja que quando chamamos o Tomcat (verifique aí), ele mostra duas mensagens dele no console:

[code] Starting service Tomcat-Standalone
Apache Tomcat/4.0.3

Starting service Tomcat-Apache
Apache Tomcat/4.0.3[/code]

São realmente dois serviços diferentes? Precisamos dos dois ? Se sim, será que podemos fazer com que um faça o serviço do outro e assim eliminar um deles?

Abraços,

cmagno

as duas mensagens tem de aparecer

1 deles eh o tomcat que aceita conexões HTTP, isto eh, ele faz o papael de um web server, e direciona para onde for preciso

o outro nao ta nem ai para conexao http, ele eh o servlet container, ta ligado?

o tomcat pode fazer o papel dos dois, ou soh de um!

pega a versao 4.1.x do tomcat, e ve se ele continu levantando 2 webapps!

Nao faz sentido levantar 2 webapps. Levantar duas servlets da mesma classe eh super normal, mas isso ai nao eh nao!