后面的那一大串才是重点试一下把msbase,mssqlserver,msutil解压在放WEB-INF\classes里

解决方案 »

  1.   

    分段try。
    看是到底是哪一部分出的错误。
      

  2.   

    试了 无效后面的那一大串是:org.apache.jasper.JasperException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect.  Invalid URL.
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
    at java.lang.Thread.run(Thread.java:479)
    root cause javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect.  Invalid URL.
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
    at org.apache.jsp.sql8_jsp._jspService(sql8_jsp.java:81)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
    at java.lang.Thread.run(Thread.java:479)
      

  3.   

    还有tomcat中common\lib文件夹里考入那三个文件。   哎,可怜我自己的win2003+server2000的数据库还没有连接上。
      

  4.   

    String url="jdbc:microsoft:sqlserver://localhost:1433/;DatabaseName=pubs";
                                                        ~~
                                                        /去掉试试
      

  5.   

    试一下用桥连接,OK?
    如果用桥连接成功,说明不是驱动问题,如果不成功,就是你的JDBC驱动没有安装了!
    org.apache.jasper.JasperException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect.  Invalid URL.
    这里好象是说你的驱动的问题!
      

  6.   

    localhost 改为127.0.0.1  试了,无效
      

  7.   

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    测试不能通过
      

  8.   

    打开Microsoft SQL Server---客户端网络实用工具----常规-----右边文本框内的TCP/IP---属性--默认端口改为1433
    打开Microsoft SQL Server---服务端网络实用工具----常规-----右边文本框内的TCP/IP---
    属性--默认端口改为1433
      

  9.   

    TCP/IP---
    属性--默认端口改为1433
    改了,无效
      

  10.   

    两个都要改的啊.
    因为你上面的代码是安全正确的..
    如果改了话.你看一下你的那个SQL里那个表的权限啊.
    如果你没有赋给SA那个读取的权限也是会出错的..试一试啊.
    我以前就是这个两个问题搞得我头昏脑痛的...^_^
    还好现在轮到你了...
      

  11.   

    喂! 哥们,怎么没有下文了,好使了吗?我也非常关心这个问题,我一直在用websphere,很想知道tomcat中怎么进行数据库的联接。
      

  12.   

    代码如下:
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=XXX","sa","");
    那三个文件拷贝到%TOMCAT%\Common\bin目录下;
    用localhost是没有问题的,我一直用;
    我用的是SQL Server 2000 JDBC+SP1(建议安装sp1),微软的冬冬不装SP会有很多莫名其妙的问题。
    看看SQL for JDBC的帮助,很详细的
      

  13.   

    请问一下JDBC装好以后有什么特征
      

  14.   

    首先要有sql的3个jar文件
    import java.sql.*;
    /**
     * @author djy
     */
    public class DbConnection
    {
    public DbConnection(){
    }
    public Connection getConnection(){
    try {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=name"; 
    String user="sa"; 
    String password=""; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    return conn;
    } /*catch (InstantiationException e) {
    System.out.println("1");
    System.out.println(e.toString());
    return null;
    } catch (IllegalAccessException e) {
    System.out.println("2");
    System.out.println(e.toString());
    return null;
    }*/ catch (ClassNotFoundException e) {
    System.out.println("3");
    System.out.println(e.toString());
    return null;
    } catch (SQLException e) {
    System.out.println("4");
    System.out.println(e.toString());
    return null;
    }
    }
    }
      

  15.   

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    测试不能通过
      

  16.   


    org.apache.jasper.JasperException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect.  Invalid URL.
      

  17.   

    String url="jdbc:microsoft:sqlserver://localhost:1433/;DatabaseName=pubs"这一行你是复制来的吧,把:;去掉,自己打上去,把1433后的/去掉
      

  18.   

    你的程序是放Root下的嗎﹖
    如果是的話﹐在Root\WEB-INF下建一個lib目錄﹐把Database的driver包放進去﹐就是你說的那三個檔案﹐然后再重啟Tomcat
      

  19.   

    補充一點﹐
    一般好的習慣是在WEB-INF下建classes和lib兩個目錄
    如果你需要的類是直接的.class檔案就放在classes下
    如果是.jar,.zip之類的就放lib下
    我一直這樣做就沒出問題
      

  20.   


    楼主:你的问题可以有以下几点:
     第一:你最好是把三个(msbase,mssqlserver,msutil)加到classpath中
     第二:你用的是哪个服务器,tomcat(我用过了)很好使的。jrun4(我也遇到了同样的问题)
     第三:localhost:1433/ 应是:localhost:1433
     第四:要确认你数据库是正确呀!你的这个程序是数据库要认证的。你可别是windows认证呀
      第五:localhost可以不改的!!!要改就应是你在局域网中的IP 如192.168.0.41
      

  21.   

    换一个注册数据库驱动的方法  用隐式的:Class.forName("sun.ldbc.odbc.JdbcOdbcDriver")
    String url="jdbc:odbc:数据库名"; 试试看