- PR -

TOMCATのデータソースを利用してデータベースに接続

1
投稿者投稿内容
ぱんちょ
会議室デビュー日: 2007/02/28
投稿数: 3
投稿日時: 2007-02-28 10:32
はじめまして。
勉強中の者です。

TOMCATのデータソースを利用してデータベースに接続したいと考えています。

環境は
Fedora Core 6
TOMCAT 5.0.28
PostgreSQL 7.4.16
になります。

以下の4つを設定しました。
・$TOMCAT_HOME/conf/server.xml
・$TOMCAT_HOME/conf/Catalina/localhost/コンテキスト.xml
・$TOMCAT_HOME/webapps/コンテキスト/WEB-INF/web.xml
・$TOMCAT_HOME/common/lib/JDBCドライバ.jar

しかし、もともとテストサーバーで動いていたwarファイルを本番サーバーに配備したのですがJavaアプリケーション側でjaa.sql.Connectionオブジェクトが取得できませんでした。

TOMCATとPostgreSQLの連携がうまくいってないと思うのですが、どこの設定が間違っているのかがわかりません。
どのように調査していけばよいのでしょうか?
宜しく御願いします。

小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-02-28 11:06
まずはエラーログを書いていただかないと。
ぱんちょ
会議室デビュー日: 2007/02/28
投稿数: 3
投稿日時: 2007-02-28 11:53
質問者です。
どうもすみません。
エラーログというのはCatalina.outに書かれたものでいいのでしょうか?
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.)
ということらしいのですが、何のことやらさっぱりわかりません。

server.xmlに書いた内容は
<GlobalNamingResources>
  ・
  ・
  ・
<ResourceParams name="webdb">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value>qxzyhsfy</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:postgresql://localhost:5432/datasaber</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.postgresql.Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>postgres</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
で、Postgresは同じマシンでポートは5432で動いています。

以下はcatalina.outの内容----------------------------------------
2007/02/28 11:33:33 org.apache.coyote.http11.Http11Protocol init
情報: Coyote HTTP/1.1をポートhttp-8080で初期化します
2007/02/28 11:33:33 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 3735 ms
2007/02/28 11:33:34 org.apache.catalina.core.StandardService start
情報: サービス Catalina を起動します
2007/02/28 11:33:34 org.apache.catalina.core.StandardEngine start
情報: Starting Servlet Engine: Apache Tomcat/5.0.28
2007/02/28 11:33:34 org.apache.catalina.core.StandardHost start
情報: XML検証は無効です
2007/02/28 11:33:34 org.apache.catalina.core.StandardHost getDeployer
情報: Create Host deployer for direct deployment ( non-jmx )
2007/02/28 11:33:34 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/jakarta-tomcat-5.0.28/conf/Catalina/localhost/ROOT.xml を処理しています
2007/02/28 11:33:35 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/jakarta-tomcat-5.0.28/conf/Catalina/localhost/balancer.xml を処理しています
2007/02/28 11:33:36 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/jakarta-tomcat-5.0.28/conf/Catalina/localhost/tomcat-docs.xml を処理しています
2007/02/28 11:33:36 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/jakarta-tomcat-5.0.28/conf/Catalina/localhost/admin.xml を処理しています
2007/02/28 11:33:37 org.apache.struts.util.PropertyMessageResources <init>
情報: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
2007/02/28 11:33:37 org.apache.struts.util.PropertyMessageResources <init>
情報: Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
2007/02/28 11:33:38 org.apache.struts.util.PropertyMessageResources <init>
情報: Initializing, config='org.apache.webapp.admin.ApplicationResources', returnNull=true
2007/02/28 11:33:53 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/jakarta-tomcat-5.0.28/conf/Catalina/localhost/servlets-examples.xml を処理しています
2007/02/28 11:33:53 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/jakarta-tomcat-5.0.28/conf/Catalina/localhost/Lightructem.xml を処理しています
2007/02/28 11:33:57 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/jakarta-tomcat-5.0.28/conf/Catalina/localhost/jsp-examples.xml を処理しています
2007/02/28 11:33:58 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/jakarta-tomcat-5.0.28/conf/Catalina/localhost/webdav.xml を処理しています
2007/02/28 11:33:58 org.apache.catalina.core.StandardHostDeployer install
情報: コンテキスト設定ファイルのURL file:/usr/local/jakarta-tomcat-5.0.28/conf/Catalina/localhost/manager.xml を処理しています
2007/02/28 11:33:59 org.apache.coyote.http11.Http11Protocol start
情報: Coyote HTTP/1.1をポート http-8080 で起動します
2007/02/28 11:33:59 org.apache.jk.common.ChannelSocket init
情報: JK2: ajp13 listening on /0.0.0.0:8009
2007/02/28 11:33:59 org.apache.jk.server.JkMain start
情報: Jk running ID=0 time=20/176 config=/usr/local/tomcat/conf/jk2.properties
2007/02/28 11:34:00 org.apache.catalina.startup.Catalina start
情報: Server startup in 26410 ms
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at jp.co.lightruct.access.BaseAccess.connect(BaseAccess.java:30)
at jp.co.lightruct.access.LoginAccess.getLoginUserBean(LoginAccess.java:53)
at jp.co.lightruct.action.LoginAction.execute(LoginAction.java:43)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
at org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:204)
at org.postgresql.Driver.connect(Driver.java:139)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
... 37 more
2007-02-28 11:35:23,849 [http-8080-Processor24] FATAL jp.co.lightruct.access.UserAccess - DB Connection Error
2007-02-28 11:35:23,965 [http-8080-Processor24] FATAL study.struts.model.biz.SystemExceptionHandler - java.sql.SQLException
at jp.co.lightruct.access.BaseAccess.close(BaseAccess.java:45)
at jp.co.lightruct.access.LoginAccess.getLoginUserBean(LoginAccess.java:87)
at jp.co.lightruct.action.LoginAction.execute(LoginAction.java:43)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
---------------------------------------------------------------
以上です。
宜しく御願いします


るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2007-02-28 11:59
引用:

Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.



コード:
Exciteで日本語変換:
ホスト名とポートが正しく、郵便局長がTCP/IP接続を受け入れているのをチェックしてください。


・実際に使ってるアドレスが無い
・DBを別のサーバ名の所にあるのを使っている
・あいているポート番号が違う
・・・etc
_________________
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2007-02-28 12:25
iptablesも確認したかな?
ぱんちょ
会議室デビュー日: 2007/02/28
投稿数: 3
投稿日時: 2007-02-28 12:52
どうやら、解決いたしました。
皆様ありがとうございました。
結局原因はPostgreSQLの設定にあったようです。
postgresql.confのtcpip_socketをtrueにしたら接続できました!
勉強になりました。
どうもありがとうございました。

小僧様
私はTOMCATのエラーログの存在を知りませんでした。
当然あるのでしょうが頭が回りませんでした。
勉強になりました。ありがとうございました。

るぱん様
ホストとポートは間違っていないので何がおかしいかわかりませんでした。
郵便局長がTCP/IP接続を受け入れてくれていなかったようです。
とても重要なヒントをいただきまして、ありがとうございました。

Java僧様
iptablesと言う物ははじめて聞きました。
この機会に勉強しようかと思います。
どうもありがとうございました。

昨晩、一晩中悩み、考えましたが解決できませんでした。
初めて掲示板で相談させていただきましたが、こんなに早く解決できるとは思いませんでした。
本当に助かりました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)