2010-04-09 35 views
13

İşte erkek kedi başlangıç ​​günlüğüne ilgili kısmı var:Tomcat çünkü jdbc sürücü yükleme başlatma başarısız

SEVERE: Context [/f360] startup failed due to previous errors 
Apr 8, 2010 6:45:56 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 
SEVERE: A web application registered the JBDC driver [org.apache.derby.jdbc.ClientDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 
Apr 8, 2010 6:45:56 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 
SEVERE: A web application registered the JBDC driver [oracle.jdbc.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 
Apr 8, 2010 6:45:56 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 
SEVERE: A web application registered the JBDC driver [com.microsoft.sqlserver.jdbc.SQLServerDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 

Bunun neden olduğu sorun temelde web uygulaması düzgün başlangıç ​​için başarısız olmasına neden olmasıdır.

Bunu nasıl düzeltebilirim?

+0

Başlangıç ​​nedeniyle * Önceki * hataları başarısız oldu. Lütfen bu hataları dahil etmek için sorunuzu güncelleyin. Bu sorunun ** temel nedeni **. – BalusC

+0

Sorun, bundan önce listelenen hataların olmamasıdır. Sadece INFO mesajları var. –

cevap

4

JDBC sürücülerine ilişkin SEVERE iletileri, bir DBCP sorunundan kaynaklanır. Bkz. DBCP-332

+0

DBCP'nin bir kısmı nerede? Tomcat? Tomcat6/JDK6/MacOS X ile ilgili hatam var, ancak (aynı uygulama, postgres + jdbc kullanarak) Tomcat/JDK6/WinXP'de iyi çalışıyor. Teşekkürler! –

+0

Referans rgielen için teşekkür ederiz. Bu açıklama anlamlı geldi. –

5

DBCP sorunu varsa, tomcat'ı durdurun, kalan tüm işlemleri (birden fazla tomcat çalıştırıyorsanız) öldürün, tomcat temp dizinini (ve belki de çalışma dizinini) silin ve yeniden deneyin.

+0

Bu gerçekten bana yardımcı oldu. Tomcat'i öldürmeyi, yeniden başlatmayı, herşeyi denedim. Kapandığımda, temp dir silindi ve sonra tekrar başladı, her şey çalıştı :-) Teşekkürler! – jpswain

6

Açıkçası bu, JDBC sağlayıcı yığında bir hatadır. Ama yine de Jetty'e bazı benzer bir kod kullanılır: Özellikle Tomcat Bahar uygulamasını kullanırken, bazen

public class CleanupContextListener implements ServletContextListener { 
@Override 
public void contextDestroyed(ServletContextEvent servletContextEvent) { 
    Logger logger = Logger.getLogger("CleanupContextListener"); 
    Enumeration<Driver> drivers = DriverManager.getDrivers(); 
    while (drivers.hasMoreElements()) { 
     Driver driver = drivers.nextElement(); 
     ClassLoader driverclassLoader = driver.getClass().getClassLoader(); 
     ClassLoader thisClassLoader = this.getClass().getClassLoader(); 
     if (driverclassLoader != null && thisClassLoader != null && driverclassLoader.equals(thisClassLoader)) { 
      try { 
       logger.warn("Deregistering: " + driver); 
       DriverManager.deregisterDriver(driver); 
      } catch (SQLException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 
@Override 
public void contextInitialized(ServletContextEvent servletContextEvent) {}  

}

4

, hata mesajı yanıltıcı - Herhangi bir JDBC sürücüsü hatası için hiçbir ilişkisi de varken hepsi sadece bir uygulama BEAN init-method (veya @PostConstruct) başarısızlığı. Hata yığını izleme gizlidir ve yalnızca tomcat/logs/localhost.xxx dosyasında görünür. Sadece bu davranıştan haberdar olun. Bana çok zaman harcadı.

Selamlar, Yosi Lev

+0

Bu doğrudur. Grails uygulamamı uygularken (Spring Framework'ü kullanan) conf/DataSource.groovy dosyasında derlenen veritabanı şifresi var. Tabii ki yanlış şifreyi kullanıyordum ama rapor edilen tek hata, JDBC sürücüsünün bu tuhaf kaydıydı. Başka bir veritabanı hatası kaydedilmedi. Tüm veritabanı başlangıç ​​işlemlerini günlüğe kaydetmek için Bahar için bir seçenek olmalıdır. –

+0

Bu doğru. Gerçek neden, jdbc hakkında bir şey değil. – flower

+0

Bu bana saatler veriyor! Teşekkürler Yosi Lev – FuzZ63

İlgili konular