我按照网上的方法配置好JSP+TOMCAT+SQL SERVER2000后,打开测试网页就显示以下错误,请问是为什么?怎么解决?type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /sql_test.jsp:85:    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
6:    String user="sa";
7:    String password="121200088";
8:    Connection conn=DriverManager.getConnection(url,user,password);
9:    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
10:    String sql="select job_id,job_desc from jobs";
11:    ResultSet rs=stmt.executeQuery(sql);
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
org.apache.jsp.sql_005ftest_jsp._jspService(sql_005ftest_jsp.java:84)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
org.apache.jsp.sql_005ftest_jsp._jspService(sql_005ftest_jsp.java:53)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Connection refused: connect
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
org.apache.jsp.sql_005ftest_jsp._jspService(sql_005ftest_jsp.java:53)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

解决方案 »

  1.   

    数据库没有连接上。你先检查一下sql server是否启动成功,然后检查一下web服务器所在的机器能否ping得通数据库服务器的ip,最后检查一下数据库链接url,用户名,数据库机器地址
      

  2.   

    sql server和tomcat都成功启动,都是在同一台机子上的,URL和用户名,密码也都正确
      

  3.   

    我的测试网页源代码是<%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.*" contentType="text/html;charset=gb2312" %>
    <html>
    <body>
    <% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
       String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
       String user="sa";
       String password="121200088";
       Connection conn=DriverManager.getConnection(url,user,password);
       Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
       String sql="select job_id,job_desc from jobs";
       ResultSet rs=stmt.executeQuery(sql);
       while(rs.next()) { %>
                    您的第一个字段内容为:<%=rs.getString(1)%><br>
                    您的第二个字段内容为:<%=rs.getString(2)%><br>
       <% } %>
       <% out.print("数据库操作成功,恭喜你"); %>
       <% rs.close();
          stmt.close();
          conn.close();
       %>
    </body>
    </html>
      

  4.   

    那么你的sql server是2000的版本吗?如果是的话安装那个sp3补丁了吗?还有安装jdbc驱动程序了吗?如果没有的话,也会导致链接失败的
      

  5.   

    有这样个问题啦!对于sql2k的是打补丁的,到网上可以下载啦,CSDN资源中也有,你可下载来,直接安装即可搞定,对啦,还有就是你的测试代码不要放到jsp 页面上呀,放到一个java 文件里,有main 调节器用一下,很容易测试,也不用每次重启tomcat ,jboss ,oc4j ,服务装置啦!方面测试用啦!