2011-10-10 260 views
2

人們幾天前都工作得很好。錯誤連接數據庫

但是現在我在嘗試從Web應用程序連接到我的postgres數據庫時出現以下錯誤。

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections." 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 


root cause 

javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections." 
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862) 
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) 
    org.apache.jsp.jsps.app_005fserver_jsp._jspService(app_005fserver_jsp.java:293) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

這裏是Eclipse控制檯中顯示的錯誤,

javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "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.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:285) 
    at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:168) 
    at org.apache.jsp.jsps.app_005fserver_jsp._jspx_meth_sql_005fquery_005f0(app_005fserver_jsp.java:339) 
    at org.apache.jsp.jsps.app_005fserver_jsp._jspService(app_005fserver_jsp.java:139) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Unknown Source) 

回答

1

用ps進行檢查AUX是Postgres的運行:

ps aux|grep postgres 

還要檢查它正在監聽:

.oO(~) $ sudo netstat -anp|grep postgres 
tcp  0  0 127.0.0.1:5432   0.0.0.0:*    LISTEN  627/postgres   
tcp  0  0 ::1:5432    :::*     LISTEN  627/postgres   
udp  0  0 ::1:43536    ::1:43536    ESTABLISHED 627/postgres   
unix 2  [ ACC ]  STREAM  LISTENING  1293 627/postgres  /tmp/.s.PGSQL.5432 

如果不是,che如果你需要從外部連接,請輸入你的postgresql.conf並設置'*'。如果你從本地主機嘗試並失敗,請嘗試使用該套接字。

+0

我使用的是Windows XP操作系統。我想這些是基於Unix命令的unix ..我如何檢查它? – TechnocraT

+0

在conf文件中,它聽取* ...這裏是它的一個片段# - 連接設置 - listen_addresses ='*' – TechnocraT

+0

我已經整理出了這個問題。我的IP地址動態更改,必須在pg_hba.conf文件中進行修改,並且工作正常。將您的答案標記爲已接受。 – TechnocraT