ホームページ >データベース >mysql チュートリアル >MySQL 接続プーリングを使用すると、Tomcat アプリケーションに「適切なドライバーが見つかりません」と表示されるのはなぜですか?

MySQL 接続プーリングを使用すると、Tomcat アプリケーションに「適切なドライバーが見つかりません」と表示されるのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-26 15:57:09260ブラウズ

Why Does My Tomcat Application Show

接続プール使用時の「適切なドライバーが見つかりません」エラーの修正

問題:

接続しようとしたとき接続プーリングを使用した Tomcat 経由の MySQL データベース、エラー「適切なドライバーが見つかりませんでした」 jdbc:mysql://localhost/dbname」が発生します。必要なライブラリを WEB-INF/lib およびクラスパスに追加したにもかかわらず、問題は解決しません。

説明:

接続プールを使用する場合、ドライバーの登録を宣言する必要があります。アプリケーション自体の外側。 Tomcat 環境では、これは通常、ドライバーの jar ファイルをサーバーの lib フォルダー (CATALINA_HOME/lib) に配置することで実現されます。

解決策:

  1. ドライバーの jar をサーバーの lib フォルダーに配置します。 MySQL ドライバーの jar をコピーします。 (connector-java-*.jar) を Tomcat lib フォルダーに追加します。
  2. 接続プールの初期化が適切であることを確認します: コード内で、接続プールの初期化を移動します (PoolingDriver インスタンスの作成など)。 ServletContextListener 実装、またはアプリケーション コンテキストが作成される前に初期化されることを保証する同様の初期化メカニズムに追加します。

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. アプリケーションを Tomcat に再デプロイします: これらの変更を加えた後、再デプロイしますあなたの申請書はTomcat.

これらの手順に従うと、「適切なドライバーが見つかりません」エラーを解決し、接続プーリングを使用して Tomcat 経由で MySQL データベースへの接続を確立できるはずです。

以上がMySQL 接続プーリングを使用すると、Tomcat アプリケーションに「適切なドライバーが見つかりません」と表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。