问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-26 00:29

我来回答

1个回答

热心网友 时间:2022-05-01 21:00

1.新建一个 .xml 文件,内容如下所示
[提示] 此xml文件名可以自己定,写好后放置到%TOMCAT_HOME%\con\conf\Catalina目录下即可
(* 其中myapp是目录是建立在%tomcat%/webapps/目录下的)
[“JDBC/Server2000”即连接池的名字可以由自己设定,不过该设置要保持一致]
<Context path="/myapp" docBase="myapp" debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/>

<Resource name="JDBC/Server2000" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="JDBC/Server2000">

<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>net.sourceforge.jtds.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:jtds:sqlserver://localhost:1433;DatabaseName=project</value>

</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>kkf</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
</ResourceParams>

</Context>

2. 修改(新建) web.xml(myapp/WEB-INF/目录下,没有就自己建立一个,注意目录名的大小写不要改),内容如下所示
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. -->
<web-app>

<!-- Remove the comments below to define a servlet. -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- <servlet> -->
<!-- <servlet-name>MyServlet</servlet-name> -->
<!-- <servlet-class>examples.MyServlet</servlet-class> -->
<!-- <init-param> -->
<!-- <param-name>myparam</param-name> -->
<!-- <param-value>12345</param-value> -->
<!-- </init-param> -->
<!-- </servlet> -->
<!-- -->
<!-- -->
<!-- <servlet-mapping> -->
<!-- <servlet-name>MyServlet</servlet-name> -->
<!-- <url-pattern>/mine/*</url-pattern> -->
<!-- </servlet-mapping> -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>

<!-- 关键部分 -->
<resource-ref>
<description>SQL Server Datasource</description>
<res-ref-name>JDBC/Server2000</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!-- 结束 -->

</web-app>

3. 修改 server.xml(%tomcat%/conf/server.xml)
在<GlobalNamingResources>中添加如下描述:
<ResourceLink name="JDBC/Server2000" type="javax.sql.DataSource" global="JDBC/Server2000"/>
(* 这是解决 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.*" %>
<html>
<head>

</head>

<body>

<%
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!"+"<br>");
while(rst.next()){
out.println(rst.getString(1));
out.println(rst.getString(2));
out.println("<br>");
}

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

[在页面中输入 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中增加
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
2、在tomcat\webapps\myapp\META-INF\context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
这样就可以了。
方式二、全局数据库连接池
1、同上
2、在tomcat\conf\context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
方式三、局部数据库连接池
只需在tomcat\webapps\myapps\META-INF\context.xml的Context中增加:
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
参数说明:
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的话,最好不要将其改为手动启动

年前从网上摘抄的。 忘记具体哪个网站了,希望原作者见量
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
没有文化能进的了集团公司吗? 有没向我们没有文的人可以上班吗? 去公司上班应该怎么做?(没有在公司上过班,没有学历)? 没文化想去公司上班该怎么办. 内心的底子只有4年在外的社会经验。_百度... 想去企业上班但是又没有文化该怎么办 成都九号公馆房价是多少钱 九号公馆房价是多少钱一平 gucci12y170可以穿吗 薄野景行为什么不老 薄野景行到底是男是女?其实她是女的,文章最后这样子写到:薄野非凡 夸别人喝酒不闹事的奖状怎么写 Druid 连接mysql 报skip not validate connection,什么情况 怎样才能知道,自己到底爱不爱他? Could not get JDBC Connection; 启动Tomcat的时候出现了这个错 具体信息在下面 apache-tomcat-6.0.20如此配置+dbcp这样配置是否有问题,怎么老是线程... 我有一只,大清御制,龟行。万寿壶能发到网页上来吗? 我要如何才能知道,他到底爱不爱我? dbcp连接池放回链接后再次拿出来地址为什么不一样,我只初始化一个。怎 ... 救命啊!!高分求教北京郊游方案?? 对于女人来说,怎么才能看出一个男人爱不爱她呢?? tomcat重新部署socket项目的时候,显示socket监听的端口被占用,原因是tomcat重新部署醒目的时候没完全关 怎么才能知道男朋友他爱不爱? 乌龟驮石碑是什么意思?为什么以前有很多? 怎样才能知道我老公爱不爱我 乾隆帝为什么能活88岁? 乾隆御制姜太公钓鱼铜茶壶值多少钱? 怎么才能知道他爱不爱你 ? 寻找正规公司签定大清年乾隆龙寿龟出手 怎样能看出一个男人爱不爱我? 乾隆御制的铜胎福禄寿三星祝寿葫芦瓶,值多少钱。 喝多了酒的说说心情 外教社杯奖状有什么用 老板发个奖状我该怎么幽默的发朋友圈? 高中一般都有什么奖状? 男人喝酒后骂自己的女人 是不是算犯法? 送男生生日礼物,已经送过衣服、包,还能送什么,他不抽烟喝酒 爸爸应酬很多,总是喝酒,我该怎么劝他?爸爸是单位办公室的人,经常有应酬,自从他到了这个位置,喝酒的天数... 西游记读后感500字!急急急!2:30前回答出高分奖励!着重描写一位人物... 特别想,西游记读后感500字,快点回答哦 玩烟(不过肺)对身体有害吗? 极度希望,西游记读后感500字,辛苦 玩香烟什么意思 西游记的一个章节读后感500字左右,急!!! 助学金申请表中的申请认定理由怎么填? 你能看出哪位女星在玩烟哪些真会吸烟? 助学金申请表中的申请认定理由该怎么填啊 西游记读后感500字,是一回故事一回故事的写 穷人玩火富人玩烟是什么意思啊 关于在学校玩烟的检讨书700字数 吸烟和玩烟有什么不同?