com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Conn

来源:互联网 发布:android 源码查看 编辑:程序博客网 时间:2024/04/28 15:29

     今天碰到一个奇怪的问题,开发的一个项目突然连接不上数据库了,之前好好的,捣鼓了好一会才弄明白怎么回事。

     首先介绍一下,我用的是sqlserver 2005 数据库(本人连接的是本机服务器,所以可以随便修改,如果是公用服务器,就要小心喽),因为修改端口的问题不小心把TCP/IP协议关闭了,但是当时也没有注意,所以就出现了下面的情况了。登录开发的项目时报以下异常:

2014-01-14 09:15:26  无法创建连接池DefaultPool的下列URL的连接: jdbc:sqlserver://localhost:1433;DatabaseName=zhyz;SelectMethod=cursor for User= sa
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机  的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect
 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
 at java.sql.DriverManager.getConnection(DriverManager.java:582)
 at java.sql.DriverManager.getConnection(DriverManager.java:185)
 at com.db.ConnectionManager$ConnectionPool.newConnection(ConnectionManager.java:346)
 at com.db.ConnectionManager$ConnectionPool.getConnection(ConnectionManager.java:378)
 at com.db.ConnectionManager.getConnection(ConnectionManager.java:202)
 at com.db.Database.ResultRow(Database.java:235)
 at com.javabean.UserBean.login(UserBean.java:235)
 at com.servlet.UserServlet.login(UserServlet.java:53)
 at com.servlet.UserServlet.doPost(UserServlet.java:34)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 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 com.filter.LoginFilter.doFilter(LoginFilter.java:39)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at com.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:87)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 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:103)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
 at java.lang.Thread.run(Thread.java:619)
2014-01-14 09:15:26  从连接池DefaultPool获取连接失败
2014-01-14 09:15:26  错误提示: null错误SQL:select * from tbuser where uloginname='admin'
java.lang.NullPointerException
 at com.db.Database.ResultRow(Database.java:236)
 at com.javabean.UserBean.login(UserBean.java:235)
 at com.servlet.UserServlet.login(UserServlet.java:53)
 at com.servlet.UserServlet.doPost(UserServlet.java:34)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 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 com.filter.LoginFilter.doFilter(LoginFilter.java:39)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at com.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:87)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 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:103)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
 at java.lang.Thread.run(Thread.java:619)
 这是报出来的异常,本人登录sqlserver 用户名 sa,密码 1001,这个保证是没有问题的,登录的数据库名为 zhyz,端口号为 1433,显然都没有问题。但是老是拒绝连接,用sqlserver连接工具可以登录连接,操作也都没有问题,可就是项目连接不上数据库,当时也是满肚子气,查了好多才找到原因,就是自己把 TCP/IP协议关了,打开就好了。

碰到这个异常解决的办法:

    1. 确保连接的数据库的名称(如我的数据库名 zhyz),端口号,以及登录数据库的用户名,密码正确。

    2. 检查TCP/IP协议是否打开(打开sqlserver 配置工具,找到 SQL SERVER Configuration Manager,点击打开,找到sqlserver 网络配置,启用TCP/IP协议)

                            

 

     3. 重启 sqlserver 服务   OK,问题解决。

 

0 0
原创粉丝点击