tomcat5.0连接池问题,得到的连接总是为null,郁闷,请高人指点 在看看tomcat的文档,看看连接的时候要不要用户名称和密码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那里的问题,我也是这问题,没搞定,换成了struct的了! 请注意大小写。你的docBase指定的虚拟目录和你实际建的目录大小写是否一致,还有,你访问时输入的url地址是否也一致呢? 根据你的数据库、用户名和密码,我稍微该了一下我配置成功的xml文件。注意修改里面的docBase和path和workDir,改成你自己的。将这个xml文件放在\Tomcat 5.0\conf\Catalina\localhost<?xml version='1.0' encoding='gb2312'?><!-- path : 指定路径,也就是访问web的路径 docBase : 虚拟目录的路径,绝对路径。 如果虚拟目录设置%CATALINA_HOME%\webapps目录的某个子目录下(如tiannet), 则可直接写子目录名称(如tiannet)。 reloadable : 当网页被更新时是否重新编译--><Context crossContext="true" debug="5" displayName="Webdav Content Management" docBase="E:/tiannet" path="/tiannet" reloadable="true" workDir="work\Catalina\localhost\tiannet"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/> <Resource auth="Container" name="jdbc/connectDB" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/connectOracle"> <!-- maxIdle : 数据库连接的最大空闲时间。 超过此空闲时间,数据库连接将被标记为不可用,然后被释放。 设为0表示无限制。 --> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <!-- maxActive : 连接池的最大数据库连接数。 设为0表示无限制。 --> <parameter> <name>maxActive</name> <value>100</value> </parameter> <!-- driverClassName : JDBC驱动程序 --> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <!-- maxWait : 最大建立连接等待时间。如果超过此时间将接到异常。 设为-1表示无限制。 --> <parameter> <name>maxWait</name> <value>10000</value> </parameter> <!-- removeAbandoned : 回收被遗弃的(一般是忘了释放的)数据库连接到连接池中 --> <parameter> <name>removeAbandoned</name> <value>true</value> </parameter> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- logAbandoned : 将被遗弃的数据库连接的回收记入日志 --> <parameter> <name>logAbandoned</name> <value>false</value> </parameter> <!-- removeAbandonedTimeout : 数据库连接过多长时间不用将被视为被遗弃而收回连接池中 --> <parameter> <name>removeAbandonedTimeout</name> <value>60</value> </parameter> <!-- url : 格式化数据库连接字符串 --> <parameter> <name>url</name> <value>jdbc:oracle:thin:@127.0.0.1:1521:jingrui</value> </parameter> <parameter> <name>username</name> <value>scott</value> </parameter> <parameter> <name>password</name> <value>tiger</value> </parameter> </ResourceParams></Context> 至于server.xml里面的内容,可以不必改动。还有。注意你的驱动程序要放在tomcat的common/lib目录下,并且更改后缀名为jar,即最后的驱动文件应该是:classes12.jar如果依然不行,那就将驱动程序的所在目录路径设在环境变量classpath中,祝好运 GlobalNamingResources设定的DATASOURCE还要在server配置里面使用Resource Link,不然lookup不到的。肯定是看文档没有看仔细,Tomcat文档这一章节后面有说到了 在server.xml后面server或者context配置段里面加上resource link.<ResourceLink name="jdbc/hello" global="jdbc/hello" type="javax.sql.DataSource"/> to lshefan(风餐露宿) :你说的是真的还是假的?测试过吗?反正我没改动server.xml照样行 绝无虚言,请参照TOMCAT文档。当然按照你的写法,直接把DATASOURCE配置在Context里面也可以,不过就不是GlobalNamingResources 楼上的两位老大,tomcat5.5怎么配置的能指教一下吗 用Tomcat5的Administration配置连接池多方便! 可是我用Administration配置的连接池同样出现这样的问题啊,反正我是多种方法试过都行不通,已经没招了我。。 Tomcat Data Source Configuration. ------------------------------------------------------------------- Server.xml Configuratio( Apache Tomcat/5.0.16).------------------------------------------------------------------- ... ... ... <GlobalNamingResources> <!-- Other Global Naming Resource --> <!-- Global Data Source Connection to MySql --> <Resource name="jdbc/Datasource" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/Datasource"> <parameter> <name>url</name> <value>jdbc:mysql://localhost:3306/mysql?autoReconnect=true</value> </parameter> <parameter> <name>validationQuery</name> <value>select 1+1 from dual</value> </parameter> <parameter> <name>maxIdle</name> <value>1</value> </parameter> <parameter> <name>maxActive</name> <value>10</value> </parameter> <parameter> <name>driverClassName</name> <value>org.gjt.mm.mysql.Driver</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>username</name> <value>username</value> </parameter> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>password</name> <value>password</value> </parameter> </ResourceParams> </GlobalNamingResources> ... ... ... <Host appBase="webapps" name="localhost"> <Context path="/Test" docBase="test" debug="5" reloadable="true" crossContext="true"> <ResourceLink name="jdbc/Datasource" global="jdbc/Datasource" type="javax.sql.DataSource"/> </Context> </Host>------------------------------------------------------------------- web.xml Configuration.------------------------------------------------------------------- <!-- Reference to Data Source For Web --> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/Datasource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> 求,怎样用二进制数据跟对象付值 ssh+proxool的web.xml配置问题 如何 保存<c:forEach>标签中循环变量的值 谁可以给我介绍一下WEBLOGIC10的用法 有关字符集的问题 如何使在动态过程中打开的Frame总在显示屏的最前面 有个问题很郁闷 关于struts的cookies的问题 <<Ejb编程指南>>or <<精通EJB>>好!!! 一段程序怎么总出Error 500错误?另外java.sql.*是什么东西? 要查看Struts例子如何设置呢? 为什么FileSystemObject在JBoss服务器中不能用?
你的docBase指定的虚拟目录和你实际建的目录大小写是否一致,
还有,你访问时输入的url地址是否也一致呢?
path和workDir,改成你自己的。将这个xml文件放在\Tomcat 5.0\conf\Catalina\localhost
<?xml version='1.0' encoding='gb2312'?><!--
path : 指定路径,也就是访问web的路径
docBase : 虚拟目录的路径,绝对路径。
如果虚拟目录设置%CATALINA_HOME%\webapps目录的某个子目录下(如tiannet),
则可直接写子目录名称(如tiannet)。
reloadable : 当网页被更新时是否重新编译
--><Context crossContext="true" debug="5" displayName="Webdav Content Management" docBase="E:/tiannet" path="/tiannet" reloadable="true" workDir="work\Catalina\localhost\tiannet">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
<Resource auth="Container" name="jdbc/connectDB" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/connectOracle">
<!--
maxIdle : 数据库连接的最大空闲时间。
超过此空闲时间,数据库连接将被标记为不可用,然后被释放。
设为0表示无限制。
-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!--
maxActive : 连接池的最大数据库连接数。
设为0表示无限制。
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!--
driverClassName : JDBC驱动程序
-->
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<!--
maxWait : 最大建立连接等待时间。如果超过此时间将接到异常。
设为-1表示无限制。
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!--
removeAbandoned :
回收被遗弃的(一般是忘了释放的)数据库连接到连接池中
-->
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!--
logAbandoned :
将被遗弃的数据库连接的回收记入日志
-->
<parameter>
<name>logAbandoned</name>
<value>false</value>
</parameter>
<!--
removeAbandonedTimeout :
数据库连接过多长时间不用将被视为被遗弃而收回连接池中
-->
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
<!--
url : 格式化数据库连接字符串
-->
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@127.0.0.1:1521:jingrui</value>
</parameter>
<parameter>
<name>username</name>
<value>scott</value>
</parameter>
<parameter>
<name>password</name>
<value>tiger</value>
</parameter>
</ResourceParams></Context>
并且更改后缀名为jar,即最后的驱动文件应该是:classes12.jar如果依然不行,那就将驱动程序的所在目录路径设在环境变量classpath中,
祝好运
<ResourceLink name="jdbc/hello" global="jdbc/hello" type="javax.sql.DataSource"/>
当然按照你的写法,直接把DATASOURCE配置在Context里面也可以,不过就不是GlobalNamingResources
-------------------------------------------------------------------
Server.xml Configuratio( Apache Tomcat/5.0.16).
-------------------------------------------------------------------
... ... ...
<GlobalNamingResources>
<!-- Other Global Naming Resource -->
<!-- Global Data Source Connection to MySql -->
<Resource name="jdbc/Datasource" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/Datasource">
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/mysql?autoReconnect=true</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select 1+1 from dual</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>1</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>username</name>
<value>username</value>
</parameter>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>password</name>
<value>password</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
... ... ...
<Host appBase="webapps" name="localhost">
<Context path="/Test" docBase="test"
debug="5" reloadable="true" crossContext="true">
<ResourceLink name="jdbc/Datasource" global="jdbc/Datasource"
type="javax.sql.DataSource"/>
</Context>
</Host>-------------------------------------------------------------------
web.xml Configuration.
-------------------------------------------------------------------
<!-- Reference to Data Source For Web -->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/Datasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>