0

軸2とapache tomcatを使用して、eclipse heliosでWebサービスを学習しています。Eclipse で単純な Java クラスとして実行すると、2 つのデータベースに正常に接続する Java クラスを持つ 2 つの動的 Web プロジェクトがあります。(プロジェクトの外部ビルド パスに外部 jar を追加しました)。しかし、サーバーでどちらかを実行すると、エラーが発生します: No suitable driver found. 必要なドライバーをロードする必要があることはわかっており、ロードしましapache-tomcat-6.0.36/libた (そしてサーバーを再起動しました)。(適切なドライバーが見つかりませんを参照してください)。

このステートメントを使用して、Java クラスでドライバーを作成します。

Class.forName("org.postgresql.Driver"); //throws class not found exception w/message "com.postgresql.jdbc.Driver"
conn = DriverManager.getConnection(url, user, password);

apache が /lib フォルダー内の .jar ドライバーを「認識」しないのはなぜですか? 一部の古いチュートリアルでは、.jar を common/lib に配置するように指示されていますが、Apache Tomcat ディレクトリ構造にそのフォルダーが表示されません。この問題をデバッグするにはどうすればよいですか?

4

2 に答える 2

1

Class.forName()使用する Java のバージョン (および JDBC のバージョン) によっては、 を呼び出す前に を呼び出す必要がある場合がありますDriverManager.getConnection(...)。これにより、JDBC がそのクラスが接続タイプのドライバーであることを認識できるように、JVM がクラスをロードするようになります。それがなければ、JDBC はデータベースのタイプのドライバーを認識しないため、「適切なドライバーが見つかりません」というメッセージを吐き出します。

Java 7 (および JDBC 4.0) を使用して Eclipse でクラスを実行している場合、クラス パスで見つかったドライバーが自動的に読み込まれます。7 より前の Java バージョン (したがって 4.0 より前の JDBC) では、説明したようにドライバーを手動で登録する必要があります。詳細については、JDBC チュートリアルを参照してください。

于 2013-04-10T13:08:11.160 に答える