重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

Tomcat4.0.4とApache1.3.26を使用しDBはPostgreSQLをつかっているのですが、DB接続がうまくいきません。
接続の際の記述は以下の通りです

public void init(ServletConfig conf) throws ServletException
{
try{
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql://localhost:8080:5432/test";
String user = "nakayama";
String pwd = "noah";
con = DriverManager.getConnection(url,user,pwd);
}catch(Exception e){
err = err + "DataBase Connection err = " +e+"<br>";
}
}

これで実行すると、以下のエラーが出ます。

DataBase Connection err = Something unusual has occured to cause the driver to fail. Please report this exception: Exception: java.lang.NullPointerException Stack Trace: java.lang.NullPointerException at org.postgresql.Connection.openConnection(Connection.java:155) at org.postgresql.Driver.connect(Driver.java:149) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at toroku2.init(toroku2.java:24) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:918) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:655) at ・・・・・

どうすれば解決できるのでしょうか?
教えてくださいm(__)m

A 回答 (4件)

エラー内容↓


DataBase Connection err = Connection refused. Check that the hostname and port is correct, and that the postmaster is running with the -i flag, which enables TCP/IP networking.

postmasterの起動に-iのオプションが入っていないのではないかと思います。確認してみて下さい。

export CLASSPATH=.:postgresql.jar
のようにドライバへのCLASSPATHの設定は必要です。
もしドライバが見つからない場合はClassNotFoundExceptionを返します。

JDBCはいろんなことに気をつける必要があるためうっかりミスが起きやすいので落ち着いてエラー内容を見るか例外処理をうまく使うと対処しやすいです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
-i での起動ということは、起動の仕方が悪いという事ですね。
現在の環境がWindowsXPである為、起動する時は、EXEから挙げています。
DOS窓から起動しないといけないという事でしょうか?
ちなみに、PostgreSQLはWindows版を使用しています。

お礼日時:2003/04/15 13:05

Windows版での環境を使用したことはないのでわからないのですが、


このエラーはTCPでの通信ができないというエラーです。
ですので、JAVAは関係ないと思います。
おそらく、postgres.confの中のtcpip_socket項目がコメントアウトされているか、falseのままなんだと思われます。
PostgreSQLはデフォルトではTCPポートをふさいでいます。
一度確認してください。
    • good
    • 0
この回答へのお礼

返事が遅くなりましたが、
ありがとうございます。
起動時にコマンドプロンプトからオプション「-i」を指定して起動すれば接続できるようになしました。
m(__)m

お礼日時:2003/04/23 12:51

8080はTOMCAT初期設定のHTTPのためのポート番号ですのでドライバのコネクションとは関係ないですね。


5432はPostgresqlの初期設定ポート番号ですのでシンプルに"jdbc:postgresql:test"でよいかと思います。

URLの書式は以下の通りです。
jdbc:postgresql:database
jdbc:postgresql://host/database
jdbc:postgresql://host:port/database

(conがいきなりでてきているので気になりましたが先にConnectionとして用意されているとみなしました)

参考URL:http://jdbc.postgresql.org/doc.html
    • good
    • 0
この回答へのお礼

上記のように設定したんですが、以下のエラーになってしまいます。
Driverは pg72jdbc2.jar の org.postgresql.Driver を指定しているのですが・・・
CLASSPATHの設定とかも必要なのでしょうか?

エラー内容↓
DataBase Connection err = Connection refused. Check that the hostname and port is correct, and that the postmaster is running with the -i flag, which enables TCP/IP networking.

お礼日時:2003/04/15 01:42

PostgreSQLは使ったことがないので外しているかも


しれませんが。。。

String url = "jdbc:postgresql://localhost:8080:5432/test";

上記のJDBCドライバURLで、8080というのはいらないのでは?

String url = "jdbc:postgresql://localhost:5432/test";
    • good
    • 0
この回答へのお礼

やっっぱりそうですが、JDBCの指定方法では
//サーバ名:ポート番号:jdbcポート番号/DB名
となっていたので、無理やり指定してみたんですが
上記ではむりでした・・・・

お礼日時:2003/04/15 01:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!