[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 メーリングリストの案内