4

ここにあるサンプル コードを使用して、Web アプリケーションの接続プールを実装しています: http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html#Plain_Ol'_Java

データベースとして PostgreSQL を使用しているため、p.setDriverClassName("com.mysql.jdbc.Driver");toという行を変更しましたp.setDriverClassName("org.postgresql.Driver");

私が得るのは ClassNotFoundException だけです。どこで間違ったのですか?他に方法はありますか?

編集:接続プールを使用せず、通常の方法で実行すると、エラーは発生しません。

編集 2:これは、提案された質問の複製ではありません。私はEclipseを使用しており、ビルドパスと展開アセンブリにjarが含まれています。私が言ったように、接続プールを行わず、手動で接続を開いて閉じるだけではエラーは発生しません。

4

1 に答える 1

5

Tomcat 7 は、JDBC ドライバーの JAR が /lib フォルダーにあることを想定しています。それらをコンテキストの WEB-INF/lib フォルダーに配置すると、それらが見つからず、エラーが発生します。

接続プーリングを行わない場合に「機能する」理由は、コンテキスト クラス ローダーが JAR を見つけることができるからです。Tomcat は、アプリ サーバーのクラス ローダーが関与する場合にのみ、その場所まで移動します。

于 2013-11-03T12:43:28.443 に答える