centos7+tomcat環境にて、DriverManager.getConnection()実行時に、
エラーが発生します。
※Class.forName()を使用すると正常にDB接続ができます。
JDK1.6以降からサポート対象となっているJDBC4.0以降であれば、
Class.forName()は不要と思われますがなぜかClass.forName()を使
用しないと、「java.sql.SQLException: No suitable driver found」
のエラーが発生します。
■質問事項
エラーの発生原因をお教え願います。
■参考情報
・該当コード(抜粋)
java
1// String driver = "org.postgresql.Driver";↲ 2// Class.forName(driver);↲ 3 Connection con = DriverManager.getConnection(getText("db.url"),getText("db.id"),getText("db.pwd"));↲
※上記コメントを外さないとエラーになる。
・エラーメッセージ(抜粋)
11348 Mar 5 14:04:52 orgos server: java.sql.SQLException: No suitable driver found for jdbc:postgresql:mvc↲
11349 Mar 5 14:04:52 orgos server: at java.sql.DriverManager.getConnection(DriverManager.java:689)↲
11350 Mar 5 14:04:52 orgos server: at java.sql.DriverManager.getConnection(DriverManager.java:247)↲
・動作環境
・OSバージョン
CentOS Linux release 7.2.1511 (Core)
・tomcatバージョン
Server version: Apache Tomcat/7.0.54
Server built: May 12 2015 08:07:35
Server number: 7.0.54.0
OS Name: Linux
OS Version: 3.10.0-327.3.1.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_71-b15
JVM Vendor: Oracle Corporation
・java -version
openjdk version "1.8.0_71"
OpenJDK Runtime Environment (build 1.8.0_71-b15)
OpenJDK 64-Bit Server VM (build 25.71-b15, mixed mode)
・javac -version
javac 1.8.0_71
・JDBCファイル名とバージョン
ファイル名:postgresql-jdbc.jar
バージョン:PostgreSQL Native Driver PostgreSQL 9.2 JDBC4.1 (build 1002)
※yum -y install postgresql-jdbc でインストール
・JDBCファイルの格納パス
/usr/share/tomcat/lib/
※上記libのディレクトリは、tomcat.confで指定している$CATALINA_HOME配下にあるlibです。
■追加情報
切り分けのため、tomcatを介さず、ネイティブなjavaで確認したところ、Class.forName()を
使用しなくても正常にDB接続できました。
・(該当コード抜粋 ※パスワードは伏字)
java
1String driver = "org.postgresql.Driver"; 2String url = "jdbc:postgresql:mvc"; 3String user = "postgres"; 4String password = "xxxxxxxx"; 5 6Connection con = DriverManager.getConnection(url, user, password);
以上、よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。