eclipse+tomcat5.5.15+sqlsever2000 sp4连接池配置

请详细说明,越是详细加分越多!!!
2026年09月09日 11:55
有1个网友回答
网友(1):

1.新建一个 .xml 文件,内容如下所示
[提示] 此xml文件名可以自己定,写好后放置到%TOMCAT_HOME%\con\conf\Catalina目录下即可
(* 其中myapp是目录是建立在%tomcat%/webapps/目录下的)
[“JDBC/Server2000”即连接池的名字可以由自己设定,不过该设置要保持一致]

prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/>





factory
org.apache.commons.dbcp.BasicDataSourceFactory


driverClassName
net.sourceforge.jtds.jdbc.Driver


url
jdbc:jtds:sqlserver://localhost:1433;DatabaseName=project



username
sa


password
kkfbai


maxActive
20


maxIdle
10


maxWait
10000





2. 修改(新建) web.xml(myapp/WEB-INF/目录下,没有就自己建立一个,注意目录名的大小写不要改),内容如下所示

























index.jsp



404
/error.jsp




SQL Server Datasource
JDBC/Server2000
javax.sql.DataSource
Container





3. 修改 server.xml(%tomcat%/conf/server.xml)
中添加如下描述:

(* 这是解决 Name jdbc is not bound in this Context 问题的关键,一定要加上)

4. 测试程序test.jsp
(前提:1.已装 SQL SERVER2000;
2.SERVER2000 中的数据库project中要含有表test(name,id),内含数据;)
<%@ page language="java" contentType="text/html; charset=gb2312" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*"%>
<%@ page import="java.sql.*" %>







<%
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("JDBC/Server2000");
if(ds!=null){
out.println("Connection is OK!");
Connection cn=ds.getConnection();

if(cn!=null){
out.println("cn is Ok!");
Statement stmt = cn.createStatement();

ResultSet rst = stmt.executeQuery("select * from test");

out.println("rst is Ok!"+"
");
while(rst.next()){
out.println(rst.getString(1));
out.println(rst.getString(2));
out.println("
");
}

cn.close();
} else {
out.println("rst Fail!");
}
} else {
out.println("Fail!");
}
}catch(Exception ne){
out.println(ne);
}
%>



[在页面中输入 http://localhost:8080/myapp/test.jsp 看到页面中输出数据库中的内容后就成功了]

网上摘录极好文章
攻破JNDI连接池- -

经过几天的努力,终于可以连接上连接池了,其中参考了很多大侠关于这方面的贴子,现在将这几天出现的几个问题写在这里:
一.在tomcat_home\common下放入jdbc的三个驱动程序(一定要的哦),可以在微软的网站上去下载,安装的SQLSERVER2k默认的用户名是sa,密码是空,但密码为空并不代表没有密码,所以你的url中一定要定义username和password,最好是重设定一下密码
二.出现不能引用错误的话一般就是路径没有写对,tomcat默认的路径是tomcat_home\webapps\不过使用5.5.x的话,按下面方法就行,不需要配置路径,而且也不用在youwebapp\WEB-INF\web.xml文件配置引用
三.tomcat5.5.x版的server.xml配置与tomcat5.0的配置不同,下面列举三种在tomcat5.5.x的配置方法,如果配置不正确会出现javax.naming.NameNotFoundException: Name is not bound in this Context 错误
方式一、全局数据库连接池
1、通过管理界面配置连接池,或者直接在tomcat\conf\server.xml的GlobalNamingResources中增加

2、在tomcat\webapps\myapp\META-INF\context.xml的Context中增加:

这样就可以了。
方式二、全局数据库连接池
1、同上
2、在tomcat\conf\context.xml的Context中增加:

方式三、局部数据库连接池
只需在tomcat\webapps\myapps\META-INF\context.xml的Context中增加:

参数说明:
driveClassName:JDBC驱动类的完整的名称;
maxActive:同时能够从连接池中被分配的可用实例的最大数;
maxIdle:可以同时闲置在连接池中的连接的最大数;
maxWait:最大超时时间,以毫秒计;
password:用户密码;
url:到JDBC的URL连接;
user:用户名称;
validationQuery:用来查询池中空闲的连接。
以上三种方式在tomcat 5.5.4下都可以。另外,sql server的jdbc driver是从微软网站上下载的sql server jdbc (sp3)。
四.报错org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.)此是一个小问题,因为我的SQLSERVER2K的服务改成手动的,所以每次启动后就要手动的启动SQLSERVER2K,由于一下子不记的启动了,所以报些错误,所以如果你经常要用到SQLSERVER2K的话,最好不要将其改为手动启动

年前从网上摘抄的。 忘记具体哪个网站了,希望原作者见量