0

Было замечено, что всякий раз, когда я добавляю класс Listener к моему web.xml, все веб-приложение перестает функционировать. Вы можете найти код ниже:Проблема ServletContextListener | HTTP Status 404 -

web.xml

<listener> 
    <listener-class>Reminder</listener-class> 
</listener> 

Reminder.java

@Override 
public void contextInitialized(ServletContextEvent sce) { 
    try { 
     response.getWriter().print("Initasdadsa"); 
    } catch (IOException ex) { 
     Logger.getLogger(Reminder.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

@Override 
public void contextDestroyed(ServletContextEvent sce) { 
    Enumeration<Driver> drivers = DriverManager.getDrivers(); 
    while (drivers.hasMoreElements()) { 
     Driver driver = drivers.nextElement(); 
     try { 
      DriverManager.deregisterDriver(driver); 
     } catch (SQLException e) { 
     } 

    } 
} 

Когда я развернуть war-файл вышеуказанного приложения он говорит:

HTTP Status 404 - type Status report 
message description The requested resource is not available.Apache Tomcat/6.0.24 

Файл журнала Tomcat выглядит следующим образом:

May 9, 2013 3:57:10 PM org.apache.catalina.startup.HostConfig checkResources 
INFO: Undeploying context [/CloudStorage] 
May 9, 2013 3:57:10 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 
SEVERE: A web application registered the JBDC driver [com.mysql.jdbc.Driver] but failed   
to unregister it when the web application was stopped. To prevent a memory leak, the 
JDBC Driver has been forcibly unregistered. 
May 9, 2013 3:57:50 PM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive CloudStorage.war 
May 9, 2013 3:57:50 PM org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 
May 9, 2013 3:57:50 PM org.apache.catalina.core.StandardContext start 
SEVERE: Context [/CloudStorage] startup failed due to previous errors 
May 9, 2013 3:57:50 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 
SEVERE: A web application registered the JBDC driver [com.mysql.jdbc.Driver] but failed  
to unregister it when the web application was stopped. To prevent a memory leak, the 
JDBC Driver has been forcibly unregistered. 

Когда я опускаю часть Listener, приложение работает нормально. :-(

Что я делаю неправильно?

+0

Пожалуйста, пост весь Reminder.class, как исходный код, который вы публикуемую оленья кожа скомпилировать прямо сейчас –

ответ

2

Вы должны дать полное квалифицированное имя класса напоминание, как «com.example.Reminder» в вашем web.xml, если ваш класс не находится в пакете по умолчанию .

Если это в пакете по умолчанию, то есть может быть другая проблема.

+0

это в пакете по умолчанию. – sree127

+0

Где " ответ "в контекстеIn инициализированный метод инициализирован? Вы уверены, что это не null? –

+0

+1; @ user1640534: просто не используйте пакет по умолчанию, использование ts обескуражено и приводит к некоторым побочным эффектам в Tomcat. – home