[pgsql-jp: 28312] Re: postgresqlとの接続エラー
fwif0083 @ mb.infoweb.ne.jp
fwif0083 @ mb.infoweb.ne.jp
2002年 12月 14日 (土) 00:54:33 JST
本田です。
From: "Takeuchi" <takeu-al @ tf6.so-net.ne.jp>
Subject: [pgsql-jp: 28308] Re: postgresqlとの接続エラー
Date: Fri, 13 Dec 2002 22:22:38 +0900
> program1ではうまくいく。よってドライバのロードエラーではないと思っていたら
> program2 では
> DataBase Connect Failed ClassNotFoundException
> とエラーがでる。
>
> program3ではNullPointerException が発生しているようです。
> -----------program1----------------------
サーブレットではないから、OS(?)側の設定によるクラスパスが参照される。
このパスにはpostgresのドライバがあるようですね。
> -----------program2----------------------
program3と同じサーブレットであることから、program3と同じ環境にdeploy
したものと推測します
PrintWriter out = new PrintWriter(res.getOutputStream());
(略)
rtn_msg = "DataBase Connect Failed : " + e;
}
out.println(rtn_msg);
サーブレットの環境からはドライバがロードできない。が、
『DataBase Connect Failed ClassNotFoundException』は out
(=res.getOutputStream()) に対して出力しているから、
> DataBase Connect Failed ClassNotFoundException
> とエラーがでる。
とブラウザにエラーがでる。
> -----------program3----------------------
サーブレットの環境では、ドライバがロードできず、rtn_msg には
program2同様の文字列が入っているというシナリオです。
program2では、res.getOutputStream()から取り出しているstream
に対して出力しているrtn_msgは、ここでは、System.out に出力し
ている。したがってブラウザには表示されない。
> }catch ( ClassNotFoundException e) {
> rtn_msg = "DataBase Connect Failed : " + e;
> System.out.println(rtn_msg);
(略)
> String searchword = req.getParameter("searchword");
> System.out.println(searchword);
#このsearchwordの出力はブラウザに表示されていますか?
このアタリに以下を追加してみてはいかがでしょう。
pw.println( rtn_msg );
まずは、program2で
DataBase Connect Failed ClassNotFoundException
とならなくなるよう、jarファイルをインストール。
これでも可能性として、program3で接続エラーとなるしれませんが、その場合は
pg_hda.confを確認。
pgsql-jp メーリングリストの案内