[在线求救]--JSP页面中访问SQL Server 2000数据库的“Error establishing socket”问题
我的机器是XP系统,安装了SP2补丁,服务器用的Tomcat。但是,不知为什么,却无法访问数据库。下面这个JSP页面中的代码是用来测试数据库连接的:
<%String MM_DB011D_CONN_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String MM_DB011D_CONN_USERNAME = "sa";
String MM_DB011D_CONN_PASSWORD = "sa";
String MM_DB011D_CONN_STRING = "jdbc:microsoft:sqlserver://127.0.0.1:1500;DatabaseName=DB011D";
Class.forName(MM_DB011D_CONN_DRIVER).newInstance();
Connection conn= DriverManager.getConnection(MM_DB011D_CONN_STRING,MM_DB011D_CONN_USERNAME,MM_DB011D_CONN_PASSWORD);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select P.Pid,P.Pname from PROJECT P";
ResultSet rs=stmt.executeQuery(sql);
%>
<select name="Proj" size="1" id="Proj">
<option selected></option>
<% while(rs.next()) {%>
<option value="<%=rs.getString(1)%>"> <%=rs.getString(2)%> </option>
<%}%>
</select>
<%rs.close();
stmt.close();
conn.close();
%>
<%
Connection conn_F= DriverManager.getConnection(MM_DB011D_CONN_STRING,MM_DB011D_CONN_USERNAME,MM_DB011D_CONN_PASSWORD);
Statement stmt_F=conn_F.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql_F="select F.Fid,F.Fname from FRIEND F";
ResultSet rs_F=stmt_F.executeQuery(sql_F);
%>
<select name="Friend" size="1" id="Friend">
<option selected></option>
<% while(rs_F.next()) {%>
<option value="<%=rs_F.getString(1)%>"> <%=rs_F.getString(2)%> </option>
<%}%>
</select>
<%rs_F.close();
stmt_F.close();
conn_F.close();
%>
结果页面显示如下错误:
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
注:
1.Microsoft SQL Server 2000 Driver for JDBC的驱动程序已经安装
2.Microsoft SQL Server 2k sp3也已经安装
2.SQL Server中已经将默认端口疫为1500(所以上面的代码用的才是1500端口)
3.环境变量配置如下:
JAVA_HOME: D:\Program Files\JBuilder9\jdk1.4
CATALINA_HOME: D:\Program Files\Apache Software Foundation\Tomcat 5.0
CLASS_PATH: .;%JAVA_HOME%\lib;%catalina_home%\common\lib;
c:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;
c:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;
c:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;
c:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib
在path中也把Tomcat和jdk下面的bin目录加了进去。
4.msbase.jar、mssqlserver.jar和msutil.jar三个文件也拷到了Tomcat\common\lib目录下。
可是,不管采用什么办法,却总是无法访问数据库,总是出现[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket这个错误,真是郁闷死我了!
还望哪位大虾帮助解答一下,我现在是一点办法也没有了...
问题点数:100、回复次数:17Top
1 楼zyg158((DD)OTP)回复于 2004-12-01 12:43:47 得分 0
端口错误!!是"jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=DB011D";Top
2 楼zyg158((DD)OTP)回复于 2004-12-01 12:45:36 得分 0
没看见中间的,当我没说过,嘿嘿Top
3 楼wanggangtjdx8211(疙瘩宝贝)回复于 2004-12-01 12:46:38 得分 0
我在网上看到很多类似我这样的问题,可是我照着上面说的解决办法做了,却还是出现这个问题,我现在都快急死了。哪位有经验的高手快帮帮忙啊!先谢谢了!Top
4 楼duanyuxy123(这几年)回复于 2004-12-01 12:48:09 得分 0
把端口该回1433试试Top
5 楼duanyuxy123(这几年)回复于 2004-12-01 12:48:33 得分 0
把默认端口该回1433试试
Top
6 楼jerrykey(钥匙)回复于 2004-12-01 12:51:36 得分 0
呵呵,端口号错了~Top
7 楼drugon(更高,更远,更强)回复于 2004-12-01 12:59:33 得分 0
你在CMD方式下输入netstat -an看输出结果有没有1500那个端口在监听,如果没有的话,可能是你数据库没有启动或是有问题。比如用户名和密码不对。一般是不会将sa用户的密码设为sa的,你用这个用户名和密码先建一个ODBC看能不能连上。
然后查毒,也有这个可能,以前我就遇到过,他机子中毒了,出现和你同样的问题。Top
8 楼wanggangtjdx8211(疙瘩宝贝)回复于 2004-12-01 12:59:59 得分 0
我已经把SQL Server的默认端口改成了1433,重新启动了SQL Server和Tomcat,在页面的代码中也把1500端口改成了1433端口。可是还是打不开页面,仍然显示“[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket”这个错误。
真是邪门了???Top
9 楼drugon(更高,更远,更强)回复于 2004-12-01 13:02:04 得分 0
CLASS_PATH不是这样写的,是classpath中间没有下划线的,大小写则没有关系。Top
10 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2004-12-01 13:09:24 得分 0
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=200247
楼主看看这个吧Top
11 楼wanggangtjdx8211(疙瘩宝贝)回复于 2004-12-01 13:10:16 得分 0
我在cmd方式下输入netstat -an查了一下,结果如下:
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2030 0.0.0.0:0 LISTENING
TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1025 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1025 127.0.0.1:2320 TIME_WAIT
TCP 127.0.0.1:1025 127.0.0.1:2324 TIME_WAIT
TCP 127.0.0.1:1030 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1036 127.0.0.1:1025 CLOSE_WAIT
TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING
TCP 127.0.0.1:8080 127.0.0.1:2325 TIME_WAIT
TCP 192.168.0.81:139 0.0.0.0:0 LISTENING
TCP 192.168.0.81:2277 61.186.252.133:80 TIME_WAIT
TCP 192.168.0.81:2285 61.186.252.130:80 TIME_WAIT
TCP 192.168.0.81:2293 61.186.252.136:80 TIME_WAIT
TCP 192.168.0.81:2297 61.186.252.136:80 TIME_WAIT
TCP 192.168.0.81:2299 61.186.252.136:80 TIME_WAIT
TCP 192.168.0.81:2301 61.186.252.136:80 TIME_WAIT
TCP 192.168.0.81:2305 61.186.252.136:80 TIME_WAIT
TCP 192.168.0.81:2309 61.186.252.130:80 TIME_WAIT
TCP 192.168.0.81:2311 61.186.252.136:80 TIME_WAIT
TCP 192.168.0.81:2314 61.186.252.136:80 TIME_WAIT
TCP 192.168.0.81:2316 61.186.252.136:80 TIME_WAIT
TCP 192.168.0.81:2318 61.186.252.136:80 TIME_WAIT
TCP 192.168.0.81:2319 64.233.167.99:80 TIME_WAIT
TCP 192.168.0.81:2323 61.186.252.136:80 FIN_WAIT_1
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:500 *:*
UDP 0.0.0.0:1035 *:*
UDP 0.0.0.0:2175 *:*
UDP 0.0.0.0:4000 *:*
UDP 0.0.0.0:4500 *:*
UDP 0.0.0.0:6000 *:*
UDP 0.0.0.0:6001 *:*
UDP 127.0.0.1:123 *:*
UDP 127.0.0.1:1032 *:*
UDP 127.0.0.1:1037 *:*
UDP 127.0.0.1:1043 *:*
UDP 127.0.0.1:1900 *:*
UDP 127.0.0.1:1906 *:*
UDP 127.0.0.1:1984 *:*
UDP 192.168.0.81:123 *:*
UDP 192.168.0.81:137 *:*
UDP 192.168.0.81:138 *:*
UDP 192.168.0.81:1900 *:*
好像没看到1500端口。
另外,我把class_path改成了classpath,还是不行...Top
12 楼drugon(更高,更远,更强)回复于 2004-12-01 13:25:34 得分 30
TCP 0.0.0.0:1500 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING
没有类似上面这两行,这说明你的数据库没有启动,这个端口没有监听,所以你的代码连不上数据库了。如果你确定你的数据库启动了,那么极有可能是你机子中毒了。查毒。Top
13 楼wanggangtjdx8211(疙瘩宝贝)回复于 2004-12-01 13:58:37 得分 0
我看了一下事件查看器,里面有这样的事件信息:
“(来源:MSSQLSERVER/MSDE)您正在运行的 Microsoft SQL Server 2000 或 Microsoft SQL Server 2000 桌面引擎(又称 MSDE)的版本包含已知的与 Windows 的 此版本一起使用时的漏洞。要减少计算机的漏洞,免受特定病毒 攻击,应该禁用 Microsoft SQL Server 2000、MSDE (或同时)的 TCP/IP 和 UDP 网络端口。要启用这些端口,您必须从 http://www.microsoft.com/sql/downloads/default.asp 安装修补程序,或 Microsoft SQL Server 2000 或 MSDE 的 最新 service pack。”
我到微软的网站上下载了Microsoft SQL Server 2000 Service Pack 3a,包括三个程序:
chs_sql2kasp3.exe、chs_sql2kdesksp3.exe和chs_sql2ksp3.exe
我都装上了。但是再次在命令行输入“netstat -an”时,1433端口还是没有开...
现在应该怎么办?我没主意了...
Top
14 楼wanggangtjdx8211(疙瘩宝贝)回复于 2004-12-01 14:16:31 得分 0
请大家一定帮帮忙啊!
我现在已经把SQL Server 2000删除了,打算再重装一遍...Top
15 楼bluemeteor(挂月||Becoder)回复于 2004-12-01 14:28:39 得分 50
常见问题...打SP补丁就可以了.....Top
16 楼dropship(光荣与梦想)回复于 2004-12-01 15:38:06 得分 20
楼上正解。打上sql 的补丁3以上就OK了Top
17 楼wanggangtjdx8211(疙瘩宝贝)回复于 2004-12-01 16:41:45 得分 0
谢谢大家,我又重新装了一遍SQL Server 2000 for 2003,同时打上了SQL Server 2000 SP3补丁,现在已经OK了。
非常感谢!Top
相关问题
- 急问:sql server 2000 Error establishing socket 错误??
- jsp与SQL Server
- JSP连接SQL2000中出现Error establishing socket错误
- jsp + ms sql server 2000
- jsp 连接SQL 2000?
- jsp中sql2000的连接出了什么问题?(Error establishing socket) 急!在线等!
- 难道可用JSP+SQL Sever?
- 100分=jsp/servlet + SessionBean + EntityBean + SQL
- JSP中的SQL问题!
- jsp连接SQL SERVER7.0/2000问题?




