« ビデオカードの設定 | トップページ | JDBCデータソースを使おうとしてハマる »

2004/10/02

TomcatからPostgresqlに接続してみる

IDG JAPANからでているJava WORLD for Beginnersというムックを買ってきました。

VineLinux2.5ではデフォルトでPostgresqlがインストールされているので、前からこいつを使う方法が無いものか?と思っていたのです。
そんな時に、このムックで Tomcat+Postgresql を使ったWebアプリケーションの作り方が載っていたので、作ってみようと思ったのでした。

この本では、Windows上で動かすのを前提で書いてあります。
Postgresql も、Cygwinで動かしてます。(汗)
ま、CygwinもLinuxも似たようなもんだろうと思って、深く考えずに作り始めたのでした。

で、なんとかPostgresqlを使おう!ってな所までたどり着き、実行してみたところエラーが!!
SQL Exception No suitable driver
そんなドライバは知らん!! と言われてます・・・。
そんなはずは!
ちゃんと Class.forName( "org.postgresql.Driver" ); でクラスを呼んでるし、
Connection connection = DriverManager.getConnection( DB_URL, DB_USER, DB_PASSWORD );
でコネクションオブジェクトも作成できてるはず!!

なんでや~!!と思ってPostgresql(Ver7.43)のページに行ってみた所、ドライバのある所にCLASSPATHを通さなくてはいけないらしい・・・。
「ドライバを使うためには、JAR ファイル (ソースからコンパイルした場合は postgresql.jar、そのほかの場合はそれぞれ JDBC 1、JDBC 2、JDBC 3 バージョンである、pg7.4jdbc1.jar、pg7.4jdbc2.jar、pg7.4jdbc3.jar)をクラスパスに含む必要があります。」
って書いてあったので、それらしきファイルを探してみたのだけど見つかりません・・・。

そんなばかな!
このPostgresqlには、JAVA用のドライバが無いのか?!?
ちょっとまて。こいつのPostgresqlのバージョンっていくつだっけ?と思ったら
/var/lib/pgsql/data/PG_VERSION
ってなそのまんまな名前のファイルを発見し、見てみたところ バージョン7.2でした。

で、バジョン7.2のページを見てみると、
「jar ファイル(ソースからコンパイルした場合は postgresql.jar、さもなくば、それぞれ jdbc1、jdbc2 バージョンである、jdbc7.2-1.1.jar または jdbc7.2-1.2.jar)をクラスパスに含む必要があります。」
って書いてある。

・・・・・ファイル名違うやん!! ころころ変えんな~!!

find / -name jdbc* とコマンド打って検索したら、出てきました! しかもバージョン違うのが4つも!(笑)

とりあえず、その1つにCLASSPATHを通して実行してみました。

・・・・また同じエラーが。 ????なんで????

Googleを使って検索してみると、どうやらJDBCのURLが間違っている時に出るエラーのようです。
ソース見ても間違っていないのにな~。わからん・・・。
CLASSPATHの通し方が違っているのかなと思い、調べてみると、
「TOMCATから使うなら、$TOMCAT_HOME/libが良いでしょう。」ってなのにヒットした。

なに~!?Tomcatに直接置けばいいのか!?
そんなのこのムックのどこにも載って・・・・・・。
・・・。載ってました~。(T_T)

本では、postgresql.jarをコピーし、WEB-INF\lib に置けばいい、みたいなことが書いてありました。
しかも、ここに置いておけばCLASSPATHを設定しなくても勝手に読んでくれるそうです。
で、 jdbc7.1-1.2.jar をWEB-INF\libに置いたら、ちゃんと動くようになりました!!

もっとしっかり本読んでおけば・・・・・。ま、ファイル名が違うことには気づいたんだから良しとするか。

|

« ビデオカードの設定 | トップページ | JDBCデータソースを使おうとしてハマる »

JAVA」カテゴリの記事

Postgresql」カテゴリの記事

Tomcat」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: TomcatからPostgresqlに接続してみる:

« ビデオカードの設定 | トップページ | JDBCデータソースを使おうとしてハマる »