
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
No.3ベストアンサー
- 回答日時:
エラー内容↓
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はいろんなことに気をつける必要があるためうっかりミスが起きやすいので落ち着いてエラー内容を見るか例外処理をうまく使うと対処しやすいです。
ありがとうございます。
-i での起動ということは、起動の仕方が悪いという事ですね。
現在の環境がWindowsXPである為、起動する時は、EXEから挙げています。
DOS窓から起動しないといけないという事でしょうか?
ちなみに、PostgreSQLはWindows版を使用しています。
No.4
- 回答日時:
Windows版での環境を使用したことはないのでわからないのですが、
このエラーはTCPでの通信ができないというエラーです。
ですので、JAVAは関係ないと思います。
おそらく、postgres.confの中のtcpip_socket項目がコメントアウトされているか、falseのままなんだと思われます。
PostgreSQLはデフォルトではTCPポートをふさいでいます。
一度確認してください。
返事が遅くなりましたが、
ありがとうございます。
起動時にコマンドプロンプトからオプション「-i」を指定して起動すれば接続できるようになしました。
m(__)m
No.2
- 回答日時:
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
上記のように設定したんですが、以下のエラーになってしまいます。
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.
No.1
- 回答日時:
PostgreSQLは使ったことがないので外しているかも
しれませんが。。。
String url = "jdbc:postgresql://localhost:8080:5432/test";
上記のJDBCドライバURLで、8080というのはいらないのでは?
String url = "jdbc:postgresql://localhost:5432/test";
やっっぱりそうですが、JDBCの指定方法では
//サーバ名:ポート番号:jdbcポート番号/DB名
となっていたので、無理やり指定してみたんですが
上記ではむりでした・・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaのエラーについてです
-
NetBeans IDE 3.6で
-
メインクラス○○.classが見つか...
-
JSPページから、同じJSPページ...
-
Eclipseで、プロジェクト名のと...
-
タグが閉じてないというエラー...
-
Java アクセス修飾子protected...
-
jspでの一般的なException機能
-
エラー:org.springframeworkが...
-
JSPの表示時エラー
-
JSP/サーブレットで一般的な入...
-
classファイルについて
-
Javascriptの値をJava(JSP)へ渡...
-
同一パッケージ内の継承について
-
html上で、バッチやexeファイル...
-
JSP・JAVAクラスのソースコード...
-
vs codeはオフラインでも使用で...
-
「ワークスペースをビルド中」...
-
マイクラjavaでForgeを入れたい...
-
jdbcドライバのjarファイルにク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
eclipseをバージョンアップした...
-
tomcat起動時エラー
-
コンパイル時にエラーが出てし...
-
エラー:org.springframeworkが...
-
eclipseでのsvn認証エラー回避方法
-
JSP内でString型からint型に変...
-
構文エラーのやり直しについて
-
タグが閉じてないというエラー...
-
Javaのエラーについてです
-
Eclipse デバッグ エラー処理
-
Eclipseで次のエラー箇所にジャ...
-
致命的: StandardServer.await:...
-
DataSetのFilter
-
java eclipse apache tomcat 9....
-
「型 ArrayList は総称ではあり...
-
eclipseで「Fatal exception oc...
-
シンボルが見つかりませんとい...
-
Hot code replace failed ?
-
eclipseのエラーについて質問で...
おすすめ情報