Galera, estou desenvolvendo uma aplicação a qual necessito que chame determinado método ao iniciar o tomcat, ou seja, criar um Listener.
Fiz um teste com essa classe pra ver se o listener estava funcionando:
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
public class AppLifeCycleEvent implements ServletContextListener {
public void contextInitialized(ServletContextEvent cse) {
System.out.println(“Application initialized”);
}
public void contextDestroyed(ServletContextEvent cse) {
System.out.println(“Application shut down”);
}
}
Depois coloquei assim no Deployment Descriptor(web.xml) :
<?xml version="1.0" encoding="ISO-8859-1"?>
com.example.AppLifeCycleEvent
Ao iniciar o Tomcat, o mesmo morre. E basta eu comentar a partir da tag até que o Tomcat passa a rodar.
O que eu estou fazendo de errado?
Nunca usei isso… então não sei dizer.
Mas não há nada no log de inicialização do tomcat que indique algum erro?
Dei uma pesquisada e vi no guj um tutorial sobre prevayler que tem um listener, e está igual ao que você colocou ali…
Bem, veja se este link ajuda: Java Tips - How to work with ServletContextListener
flw
No log de inicialização do Tomcat aparece isso:
Catalina.start: LifecycleException: Context startup failed due to previous errors
LifecycleException: Context startup failed due to previous errors
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3700)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1147)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:696)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1147)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:310)
at org.apache.catalina.core.StandardService.start(StandardService.java:449)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2212)
at org.apache.catalina.startup.Catalina.start(Catalina.java:458)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:345)
at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:150)
Stopping service Tomcat-Standalone
Catalina.stop: LifecycleException: Coyote connector has not been started
LifecycleException: Coyote connector has not been started
at org.apache.coyote.tomcat4.CoyoteConnector.stop(CoyoteConnector.java:1381)
at org.apache.catalina.core.StandardService.stop(StandardService.java:498)
at org.apache.catalina.core.StandardServer.stop(StandardServer.java:2247)
at org.apache.catalina.startup.Catalina.start(Catalina.java:489)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:345)
at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:150)
É, estranho, nada que fale da sua classe mesmo… o único detalhe que vi agora é que na classe ali que vc copiou não há o pacote, e no web.xml vc diz estar no pacote com.example. Mas duvido muito que seja isso…
Acho que terá de esperar alguém que entenda mais disso escrever.
flw e boa sorte
Problema resolvido. Num tinha nada a ver com o Listener. O lance é que eu tinha mudado do JDK1.5 para o JDK1.4, mudei nas configurações do Eclipse, porém não alterei o Compiler. E isso gerou o conflito.