- - PR -
TOMCATのデータソースを利用してデータベースに接続
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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の連携がうまくいってないと思うのですが、どこの設定が間違っているのかがわかりません。 どのように調査していけばよいのでしょうか? 宜しく御願いします。 | ||||||||
|
投稿日時: 2007-02-28 11:06
まずはエラーログを書いていただかないと。
| ||||||||
|
投稿日時: 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) --------------------------------------------------------------- 以上です。 宜しく御願いします | ||||||||
|
投稿日時: 2007-02-28 11:59
・実際に使ってるアドレスが無い ・DBを別のサーバ名の所にあるのを使っている ・あいているポート番号が違う ・・・etc _________________ | ||||||||
|
投稿日時: 2007-02-28 12:25
iptablesも確認したかな?
| ||||||||
|
投稿日時: 2007-02-28 12:52
どうやら、解決いたしました。
皆様ありがとうございました。 結局原因はPostgreSQLの設定にあったようです。 postgresql.confのtcpip_socketをtrueにしたら接続できました! 勉強になりました。 どうもありがとうございました。 小僧様 私はTOMCATのエラーログの存在を知りませんでした。 当然あるのでしょうが頭が回りませんでした。 勉強になりました。ありがとうございました。 るぱん様 ホストとポートは間違っていないので何がおかしいかわかりませんでした。 郵便局長がTCP/IP接続を受け入れてくれていなかったようです。 とても重要なヒントをいただきまして、ありがとうございました。 Java僧様 iptablesと言う物ははじめて聞きました。 この機会に勉強しようかと思います。 どうもありがとうございました。 昨晩、一晩中悩み、考えましたが解決できませんでした。 初めて掲示板で相談させていただきましたが、こんなに早く解決できるとは思いませんでした。 本当に助かりました。 ありがとうございました。 |
1