0

Listenerにクラスを追加するたびにweb.xml、Web アプリケーション全体が機能しなくなることが観察されています。以下のコードを見つけてください:

web.xml

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

リマインダー.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と、アプリケーションは正常に動作しています。:-(

私は何を間違っていますか?

4

1 に答える 1

2

クラスがデフォルト パッケージに含まれていない限り、web.xml で「com.example.Reminder」などの Reminder クラスの完全修飾名を指定する必要があります。

デフォルトのパッケージに含まれている場合は、別の問題がある可能性があります。

于 2013-05-09T11:12:06.203 に答える