(1)server.xml  
在<host></host>中加入  
<Context  path="/gongjiao"  docBase="gongjiao">  
<Resource  name="jdbc/test"    
auth="Container"    
type="javax.sql.DataSource"  
/>                  
<ResourceParams  name="jdbc/test"  >  
<parameter>  
<name>factory</name>  
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>  
</parameter>  
<parameter>  
<name>driverClassName</name>  
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>  
</parameter>  
<parameter>  
<name>url</name>  
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyJspTest</value>  
</parameter>  
<parameter>  
<name>username</name>  
<value>alex</value>  
</parameter>  
<parameter>  
<name>password</name>  
<value>234314</value>  
</parameter>  
<parameter>  
<name>maxActive</name>  
<value>100</value>  
</parameter>  
<parameter>  
<name>maxIdle</name>  
<value>30</value>  
</parameter>  
<parameter>  
<name>maxWait</name>  
<value>10000</value>  
</parameter>  
</ResourceParams>  
</Context  >  
 
(2)在web.xml中加入如下代码:  
<resource-ref>  
       <description>  
           JNDI  DataSource  for  example  database  
       </description>  
       <res-ref-name>jdbc/test</res-ref-name>  
       <res-type>javax.sql.DataSource</res-type>  
       <res-auth>Container</res-auth>  
       <res-sharing-scope>Sharable</res-sharing-scope>  
   </resource-ref>  
(3).tomcat5.0\webapps\gongjiao\testpool.jsp  代码如下:  
<%@  page  language="java"  import="java.util.*"  pageEncoding="UTF-8"%>  
<%@  page  import="java.sql.*"%>  
<%@  page  import="javax.naming.*"%>  
<%@  page  import="javax.sql.*"%>  
<!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD    
HTML  4.01  Transitional//EN">  
<html>  
<head>  
</head>  
<body>  
<%  
Context  initContext  =  new  InitialContext();  
Context  envContext  =  (Context)  initContext.lookup("java:/comp/env");  
DataSource  db  =  (DataSource)envContext.lookup("jdbc/gongjiao");  
Connection  conn  =  db.getConnection(  );  
Statement  stmt  =  conn.createStatement();  
ResultSet  rs  =  stmt.executeQuery("SELECT  *  FROM  AllStation  WHERE  stationID  =1");  
while(rs.next()){  
out.print(rs.getString("NO1")+"  ");  
}  
rs.close();  
stmt.close();  
conn.close();  
%>  
</body>  
</html>  
(4)当我运行页面的时候,出现如下错误提示:  
HTTP  Status  500  -    
 
--------------------------------------------------------------------------------  
 
type  Exception  report  
 
message    
 
description  The  server  encountered  an  internal  error  ()  that  prevented  it  from  fulfilling  this  request.  
 
exception    
 
org.apache.jasper.JasperException:  Exception  in  JSP:  /3.jsp:15  
 
12:  Context  initContext  =  new  InitialContext();  
13:  Context  envContext  =  (Context)  initContext.lookup("java:/comp/env");  
14:  DataSource  db  =  (DataSource)envContext.lookup("jdbc/gongjiao");  
15:  Connection  conn  =  db.getConnection(  );  
16:  Statement  stmt  =  conn.createStatement();  
17:  ResultSet  rs  =  stmt.executeQuery("SELECT  *  FROM  AllStation  WHERE  stationID  =1");  
18:  while(rs.next()){  
 
 
Stacktrace:  
           org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)  
           org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)  
           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:  Cannot  create  JDBC  driver  of  class  ''  for  connect  URL  'null'  
           org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)  
           org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)  
           org.apache.jsp._3_jsp._jspService(_3_jsp.java:78)  
           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:332)  
           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    
 
org.apache.tomcat.dbcp.dbcp.SQLNestedException:  Cannot  create  JDBC  driver  of  class  ''  for  connect  URL  'null'  
           org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)  
           org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)  
           org.apache.jsp._3_jsp._jspService(_3_jsp.java:60)  
           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:332)  
           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.17  logs.  
 
 
--------------------------------------------------------------------------------  
 
Apache  Tomcat/5.5.17

解决方案 »

  1.   

    Tomcat 5.5.17 conf目录下有context.xml,直接在这改就可以了,而且5.0以后的tomcat,配置较之前的配置也有所改变,我的是5.5.9版本,另外最好不要用3个包的JDBC驱动(可以用mysql代替sqlserver或用Sqlserver的jtds包,可以到网上下)。下面是mysql的连接池的作为参考:1.context.xml<Context path="/TestDBSource"
                   docBase="D:/Tomcat 5.5/webapps/TestDBSource">
     <Resource name="jdbc/TestJNi"
    type="javax.sql.DataSource" auth="Container"
    driverClassName="org.gjt.mm.mysql.Driver" maxActive="100"
    maxIdle="30" maxWait="10000" 
    url="jdbc:mysql://localhost:3306/testDBSource?autoReconnect=true"
    username="root" password="shit" />                      
    </Context>
    2.应用程序中WEB-INF\web.xml<?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <resource-ref>
            <description>connectDB test</description>
            <res-ref-name>jdbc/TestJNi</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
    </resource-ref>
    </web-app>3.再把mysql的JDBC驱动包放入tomcat安装目录下common\lib的目录下即可
      

  2.   

    如果用SQL-SERVER2000的话,就升级SQL-SERVER吧!最低也要SP3版啊!
      

  3.   

    我的已经升级了
    而且在一般程序中都可以连接到SQL-SERVER2000
      

  4.   

    我猜一下啊。tomcat端是否有“项目名”.xml文件存在,没有的话手动建一个,放在server目录下
      

  5.   

    括号弄这么大做什么 ???
    Connection  conn  =  db.getConnection(  );  
    getConnection后面的括号~~~~。
      

  6.   

    TOMCAT版本不同,配置的方式是不一样的。打开tomcat/webapps/tomcat-docs/jndi-datasource-examples-howto.html里面有文档说明的,叫你怎么配置。
      

  7.   

    我的版本是Tomcat/5.5.17 它带的Document中那里面没有连接MSSQLserver的例子。谁能告诉一个
    Tomcat/5.5.17 连接MSSQLserver的例子阿??
      

  8.   

    <Context path="/blog" docBase="blog" debug="0" reloadable="true">
            <Resource name="jdbc/j8BlogDB" auth="Container"
                type="javax.sql.DataSource"/>
       <ResourceParams name="jdbc/j8BlogDB">
         <parameter>
           <name>username</name>
           <value>dbuser</value>
         </parameter>
         <parameter>
           <name>password</name>
           <value>1234</value>
         </parameter>
         <parameter>
           <name>driverClassName</name>
           <value>org.gjt.mm.mysql.Driver</value>
         </parameter>
         <parameter>
           <name>url</name>
           <value>jdbc:mysql://127.0.0.1/BlogDB</value>
         </parameter>
         <parameter>
           <name>maxActive</name>
           <value>8</value>
         </parameter>
         <parameter>
           <name>maxIdle</name>
           <value>4</value>
         </parameter>
       </ResourceParams></Context>
    只配置server.xml 就可以吧.
    LZ请检查你的代码testpool.jsp
      

  9.   

    你现在配置的是适合于tomcat5.0的
    5.5以后配置有所不同,都写在一起了
    <Context path="/gongjiao" docBase="gongjiao"  
     debug="5" reloadable="true" crossContext="true"> 
     <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"         
      maxActive="100" maxIdle="30" maxWait="10000" username="alex" password="234314" 
    driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyJspTest"/>
    </Context>