Heim >Datenbank >MySQL-Tutorial >Warum zeigt meine Tomcat-Anwendung „Kein geeigneter Treiber gefunden' an, wenn ich MySQL-Verbindungspooling verwende?

Warum zeigt meine Tomcat-Anwendung „Kein geeigneter Treiber gefunden' an, wenn ich MySQL-Verbindungspooling verwende?

Susan Sarandon
Susan SarandonOriginal
2024-12-26 15:57:09260Durchsuche

Why Does My Tomcat Application Show

Behebung des Fehlers „Kein geeigneter Treiber gefunden“ bei der Verwendung von Verbindungspools

Problem:

Beim Versuch, eine Verbindung zu einem herzustellen Wenn Sie eine MySQL-Datenbank über Tomcat mit Verbindungspooling verwenden, tritt die Fehlermeldung „Kein passender Treiber für jdbc:mysql://localhost/dbname gefunden“ auf. Obwohl die erforderlichen Bibliotheken zu WEB-INF/lib und zum Klassenpfad hinzugefügt wurden, besteht das Problem weiterhin.

Erklärung:

Bei der Verwendung von Verbindungspools muss die Treiberregistrierung deklariert werden außerhalb der Anwendung selbst. In einer Tomcat-Umgebung wird dies normalerweise dadurch erreicht, dass die Treiber-JAR-Datei im lib-Ordner des Servers (CATALINA_HOME/lib) abgelegt wird.

Lösung:

  1. Legen Sie die Treiber-JAR-Datei im Server-Lib-Ordner ab:Kopieren Sie die MySQL-Treiber-JAR-Datei (connector-java-*.jar) auf den Tomcat lib-Ordner.
  2. Stellen Sie sicher, dass der Verbindungspool ordnungsgemäß initialisiert wird: Verschieben Sie in Ihrem Code die Verbindungspoolinitialisierung (z. B. Erstellen der PoolingDriver-Instanz) in eine ServletContextListener-Implementierung oder einen ähnlichen Initialisierungsmechanismus, der dies sicherstellt initialisiert, bevor der Anwendungskontext geladen wird.

Beispiel ServletContextListener:

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.tomcat.dbcp.dbcp.ConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.DriverManagerConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.PoolingDriver;
import org.apache.tomcat.dbcp.pool.impl.GenericObjectPool;

public class DatabaseInitializer implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        try {
            GenericObjectPool connectionPool = new GenericObjectPool(null);
            ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(
                "jdbc:mysql://localhost/dbname", "test", "password");
            PoolableConnectionFactory poolableConnectionFactory =
                new PoolableConnectionFactory(connectionFactory, connectionPool,
                                                null, null, false, true);
            PoolingDriver driver = new PoolingDriver();
            driver.registerPool("test", connectionPool);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {}
}
  1. Stellen Sie Ihre Anwendung erneut auf Tomcat bereit: Nachdem Sie diese Änderungen vorgenommen haben, stellen Sie Ihre Anwendung erneut auf Tomcat bereit.

Von Wenn Sie diese Schritte befolgen, sollten Sie in der Lage sein, den Fehler „Kein geeigneter Treiber gefunden“ zu beheben und über Tomcat mithilfe der Verbindung eine Verbindung zu Ihrer MySQL-Datenbank herzustellen Pooling.

Das obige ist der detaillierte Inhalt vonWarum zeigt meine Tomcat-Anwendung „Kein geeigneter Treiber gefunden' an, wenn ich MySQL-Verbindungspooling verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn