2012-06-08 19 views
5

Tengo una ADVERTENCIA de que Tomcat no implementará, y mientras que normalmente me da la razón o alguna indicación de por qué no implementará la aplicación, la salida de registro catalina de Tomcat simplemente indica :WAR no se implementará en Tomcat 7.0.19

GRAVES: Contexto [/ AppMon-qa] arranque falló debido a errores anteriores

He aquí es la web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    version="2.4"> 

    <!-- The display name of this web application --> 
    <display-name>AppMonitor</display-name> 

    <listener> 
     <listener-class> 
      com.me.myorg.appmon.AppMonitor 
     </listener-class> 
    </listener> 
</web-app> 

Y el cosas importantes dentro de esa clase AppMonitor:

public class AppMonitor implements ServletContextListener { 
    @Override 
    public void contextDestroyed(ServletContextEvent event) { 
     return; 
    } 

    @Override 
    public void contextInitialized(ServletContextEvent event) { 
     try { 
      // Guts of my monitor app 
     } catch(Exception exc) { 
      System.out.println("Something bad happened!\n" + exc.getMessage()); 
     } 
    } 
} 

Y el muy vaga/undescriptive salida del registro:

INFO: Deploying web application archive appmon-qa.war 
Jun 8, 2012 9:45:30 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error listenerStart 
Jun 8, 2012 9:45:31 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/appmon-qa] startup failed due to previous errors 
Jun 8, 2012 9:45:31 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory docs 
Jun 8, 2012 9:45:31 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory examples 
Jun 8, 2012 9:45:32 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory host-manager 
Jun 8, 2012 9:45:32 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory manager 
Jun 8, 2012 9:45:32 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory ROOT 
Jun 8, 2012 9:45:32 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Jun 8, 2012 9:45:32 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Jun 8, 2012 9:45:32 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-nio-8010"] 
Jun 8, 2012 9:45:32 AM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 2875 ms 

que no desplegado esta guerra y desplegado otra, que yo sepa funciona bien y Tomcat 7.0.19 lancé sin ningún problema, por lo que saber no es un problema de Tomcat/configuración. Esto es claramente algo malo con mi GUERRA. estructura de directorios es la siguiente:

appmon-qa.war/ 
    META-INF/ 
     MANIFEST.MF 
    WEB-INF/ 
     classes/ 
      All of my binaries 
     lib/ 
      All JAR dependencies 
     web.xml 

Si había algo malo con mi (super-sencilla) web.xml, Tomcat debería ser reclamantes en la salida del registro. Si mi web.xml/ServletContextListener estaba bien, pero algo estaba arrojando una excepción dentro de mi método contextInitialized, el bloque catch estaría imprimiendo el mensaje en la consola, pero eso no está sucediendo.

¿Alguna idea sobre cuál podría ser el problema subyacente o qué opciones tengo para empezar a diagnosticar esto? ¡Gracias por adelantado!

+0

debería ser pub contexto vacío legalDestruido. ¿Es eso un error tipográfico? –

+0

¿Es realmente 'public contextDestroyed (ServletContextEvent event) '? ¿Dónde está el 'vacío'? –

+0

Sí, lo siento, fue un error tipográfico, ¡editado! – IAmYourFaja

Respuesta

1

Debe llamar a la superclase en sus métodos.

@Override 
public void contextInitialized(ServletContextEvent servletContextEvent) { 
     super.contextInitialized(servletContextEvent); 

.... }

y

@Override 
    public void contextDestroyed(ServletContextEvent servletContextEvent) { 
     super.contextDestroyed(servletContextEvent); 
    } 

Como un extra que podría asegurarse de aumentar el nivel de registro en el servidor Tomcat (tal vez integrar log4j) http://tomcat.apache.org/tomcat-7.0-doc/logging.html

Mihai

Cuestiones relacionadas