我已经下载安装sqlserver-jdbc-驱动,然后将其lib下的三个jar文件放到tomcat/common/lib下了。
在server.xml设置了
 <Context path="/test" docBase="test"
         debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
        <Resource name="jdbc/wingo" auth="Container"
                  type="javax.sql.DataSource"  password="yahoo"
                  driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
                  maxIdle="2"
                  maxWait="5000"
                  username="sa"
                  url="jdbc:odbc:Driver={SQL Server};Server=127.0.0.1;Database=shopping"
                  maxActive="4"/>
     </Context>在webapps\test\WEB-INF\web.xml设置了
<resource-ref>
<description>JNDI JDBC DataSource of test</description>
<res-ref-name>
           jdbc/wingo
         </res-ref-name>
         <res-type>
           javax.sql.DataSource
         </res-type>
         <res-auth>
           Container
         </res-auth>
</resource-ref>
运行的时候总是出现这样的错误org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 
是不是我的驱动没有正确安装?但我已经把mssqlserver.jar,msutil.jar,msbase.jar这三个jar文件放到tomcat/common/lib,而且也放了webapps\test\WEB-INF\lib下。
我的test.jsp文件是这样测试的
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*" %> 
<html>
<body>
<% 
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/wingo");
Connection conn = ds.getConnection(); if (conn!=null) {
   
 out.println("succesd");
}
else
{
out.println("fail");
}
}
catch(Exception ex){
out.println(ex);}
 %>
 
 </body>
 </html>请高手指出错误的地方

解决方案 »

  1.   

    看看这里:
    http://www.blogjava.net/rickhunter/articles/15150.html
      

  2.   

    整个SQL2K的驱动用直连吧?不懂,什么是直连?
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");如果是这样方式,我也试过,不行
      

  3.   

    我的处理方法是:
    在Tomcat 5.0\conf\Catalina\localhost下面建立一个与你的webapps下面的项目一样的xml文档
    例如:在wepapps下面有个项目叫 aa 就在Tomcat 5.0\conf\Catalina\localhost下建立文档aa.xml:
    <?xml version='1.0' encoding='gb2312'?>
    <Context displayName="Cactus JJtech Web Application 1.0" docBase="aa" path="/aa" workDir="work\Catalina\localhost\aa">
    <Resource auth="Container" description="SqlServer DataBase" name="jdbc/ccc" type="javax.sql.DataSource"/>
      <ResourceParams name="jdbc/ccc">
        <parameter>
          <name>factory</name>
          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <parameter>
          <name>url</name>
          <value>jdbc:microsoft:sqlserver://sql服务器;DatabaseName=你的数据库名称</value>
        </parameter>
        <parameter>
          <name>driverClassName</name>
          <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
        </parameter>
        <parameter>
          <name>username</name>
          <value>sa</value>
        </parameter>
        <parameter>
          <name>password</name>
          <value>密码</value>
        </parameter>    <parameter>
          <name>maxWait</name>
          <value>10000</value>
        </parameter>
        <parameter>
          <name>maxActive</name>
          <value>10</value>
        </parameter>
        <parameter>
          <name>maxIdle</name>
          <value>10</value>
        </parameter>
        <!--tomcat自动检查恢复重新利用,默认为false-->
        <parameter>
          <name>removeAbandoned</name>
          <value>true</value>
        </parameter>
        <!--设定连接在多少秒内被认为是放弃的连接,即可进行恢复利用-->
        <parameter>
          <name>removeAbandonedTimeout</name>
          <value>10</value>
        </parameter>
      </ResourceParams>
    </Context>
    把驱动放到Tomcat 5.0\common\lib 下 其他的不要改任何地方