description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: [Microsoft][SQLServer 2000 Driver for JDBC]End of stream was detected on a read.
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]End of stream was detected on a read.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:843)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
org.apache.jsp.ooo.okok_jsp._jspService(okok_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]End of stream was detected on a read.
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(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(DriverManager.java:525)
java.sql.DriverManager.getConnection(DriverManager.java:171)
org.apache.jsp.ooo.okok_jsp._jspService(okok_jsp.java:52)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.用ASP连没问题,用JSP老是出现上面的错误。数据库是SQL2000,JDBC补丁也打了,那三个什么jar文件也设置了,sp4补丁也打了,网上能查到的都做了,就是一直出现这个错误,为什么?????

解决方案 »

  1.   

    这个是我的连接代码:<%@ page contentType="text/html;charset=gb2312"%>   
    <%@ page import="java.sql.*"%> 
    <html>   
    <body>   
    <%
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();   
    String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=aa"; 
    String user="sa"; 
    String password=""; 
    Connection conn= DriverManager.getConnection(url,user,password);   
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);   
    String sql="select * from 合同信息";   
    ResultSet rs=stmt.executeQuery(sql);   
    while(rs.next()) {%>   
    您的第一个字段内容为:<%=rs.getString(1)%>   
    您的第二个字段内容为:<%=rs.getString(2)%>   
    <%}%>   
    <%out.print("数据库操作成功,恭喜你");%>   
    <%rs.close();   
    stmt.close();   
    conn.close();   
    %>   
    </body>   
    </html>
      

  2.   

    这个问题,一般不是你程序自身的原因,而是由于XP(sp2)下禁用了1433端口.
    重新update下试试
      

  3.   

    String sql="select * from 合同信息";
    表命用中文?
    在不同的环境会乱码的
      

  4.   

    我已经打了sp4的补丁了,还有你那updata怎么搞?
      

  5.   

    String sql="select * from 合同信息";     不要用中文表名
      

  6.   

    你把那三个连数据库的包放到tomcat-common-lib文件夹里
    连数据库不是你的java虚拟机连,而是tomcat解释servlet连的