您的位置:首页 > 理论基础 > 计算机网络

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

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

首先介绍一下,我用的是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,问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐