JNDI 配置TOMCAT的数据库连接池配置问题

wsj1987 2009-05-19 07:05:32
问个TOMCAT 连接池的问题
META-INF/CONTEXT.XML
conf/CONTEXT.XML
localhost/test.xml
三个配置的覆盖关系
还有conf/web.xml
web-inf/web.xml到底哪个会被哪个覆盖啊

我在项目中的WEB-INF/WEB.XML中添加了

<resource-ref>
<description>MySQL Connection Pool</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

在META-INF/CONTEXT.XML
中添加了这段

</Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>
</Context>


在SERVER.XML中添加了

<Resource
name="jdbc/mysql"
auth="Container"
url="jdbc:mysql://localhost:3306/ssys?useUnicode=true&characterEncoding=utf-8"
username="root"
password="root"
type="javax.sql.DataSource"
drivaerClassName="com.mysql.jdbc.Driver"
maxActive="100"
maxIdle="30"
maxWait="10000"/>

conf\Catalina\localhost\下面是 项目名.XML

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/salesys" docBase="D:\workspace\salesys" debug="0" workDir="D:\Program Files\Apache Software Foundation\Tomcat 5.5\work\Catalina\localhost\salesys" privileged="true">
</Context>


结果老报这个异常,是有什么问题啊
还有conf/context.xml 内容是我原来配置的数据连接池,


<Resource
name="jdbc/tracker"
global="jdbc/tracker"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/tracker?useUnicode=true&characterEncoding=utf-8"
username="root"
password="root"
maxActive="100"
maxIdle="30"
maxWait="10000"
/>
<Resource
name="jdbc/ec"
auth="Container"
url="jdbc:mysql://localhost:3306/ec?useUnicode=true&characterEncoding=utf-8"
username="root"
password="root"
type="javax.sql.DataSource"
drivaerClassName="com.mysql.jdbc.Driver"
maxActive="100"
maxIdle="30"
maxWait="10000"/>


我只是想换种方式
原来的没问题只是把原来的配置在conf/web.xml里的这段
<resource-ref>
<description>MySQL Connection Pool</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
我把他用在项目里面的web-inf/web.xml里了,还有原来的conf/context.xml里面的那段数据源我也把他改在了server.xml里
然后meta-inf/context.xml里面配置的那段是对应资源的连接,错误出在哪里啊

请各位前辈支招
...全文
363 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
timmf 2009-05-20
  • 打赏
  • 举报
回复
参考一下这个:
http://www.javaeye.com/topic/373087
META-INF在你用虚拟目录部署项目的时候貌似是不起作用的。
wsj1987 2009-05-20
  • 打赏
  • 举报
回复
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://localhost:3306/ssys?useUnicode=true&characterEncoding=utf-8'

就是这个异常,整死我了,TOMCAT刚开始也报这个异常,这次启动,连这个异常都不报了,只是我在页面上打印出来的有异常信息!
qinyupandeng 2009-05-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qinyupandeng 的回复:]
1,在http://localhost:1211/admin/里创建一个Data Sources。(记住JNDI Name)

2,在apache-tomcat-5.5.12\conf\Catalina\localhost下创建一个和项目名称相同的.xml文件(假如叫A),然后在apache-tomcat-5.5.12\conf目录下的server.xml里的

<Resource
name="orclDs"
type="javax.sql.DataSource"
maxActive="4"
maxIdle="2"
username="system"
maxWait="5000"

[/Quote]
我的是oracle,你可以参考着解决问题
timmf 2009-05-20
  • 打赏
  • 举报
回复
其实tomcat自带的帮助文档已经很详细地写了如何配置数据源了。可以到类似如下路径去看看
"你的TOMCAT安装目录/Tomcat 6.0/webapps/docs/jndi-datasource-examples-howto.html"
当然好像TOMCAT5.5以上支持在项目里通过META-INT来配置数据源。没太研究,也希望有人能给出详细解答!
qinyupandeng 2009-05-20
  • 打赏
  • 举报
回复
1,在http://localhost:1211/admin/里创建一个Data Sources。(记住JNDI Name)

2,在apache-tomcat-5.5.12\conf\Catalina\localhost下创建一个和项目名称相同的.xml文件(假如叫A),然后在apache-tomcat-5.5.12\conf目录下的server.xml里的

<Resource
name="orclDs"
type="javax.sql.DataSource"
maxActive="4"
maxIdle="2"
username="system"
maxWait="5000"
driverClassName="oracle.jdbc.driver.OracleDriver"
password="sinojava"
url="jdbc:oracle:thin:@localhost:1521:orcl"/>

复制下来,粘贴在“A”中。
此时"A"中的整体文件是:

<?xml version="1.0" encoding="UTF-8"?>
<Context
docBase="D:/apache-tomcat-5.5.12/webapps/personRecord"
privileged="true">
<Resource
name="orclDs"
type="javax.sql.DataSource"
maxActive="4"
maxIdle="2"
username="system"
maxWait="5000"
driverClassName="oracle.jdbc.driver.OracleDriver"
password="sinojava"
url="jdbc:oracle:thin:@localhost:1521:orcl"/>
</Context>

这样就把数据源和tomcat关联了起来!

在使用的时候,还要把ojdbc14.jar(在oracle\product\10.1.0\db_1\jdbc\lib下)复制到apache-tomcat-5.5.12\common\lib下!

楼主,问题解决的话记得给分啊!!做人要厚道
timmf 2009-05-20
  • 打赏
  • 举报
回复
先不要配置meta-inf/context.xml这个了,将其删掉。直接把数据源的那段配置放到“conf\Catalina\localhost\下面是 项目名.XML ”里。tomcat下的conf的server.xml和contxt.xml保持干净。试试看。
xing_6 2009-05-20
  • 打赏
  • 举报
回复
可以进入tomcat的控制台配置界面试一下 http://localhost:8080/admin 。配置完以后再去查看生成的配置信息
oklinsong 2009-05-20
  • 打赏
  • 举报
回复
关注!帮顶一下!
wsj1987 2009-05-20
  • 打赏
  • 举报
回复
有驱动啊

mysql-connector-java-5.1.6-bin.jar
Looking_Glass 2009-05-19
  • 打赏
  • 举报
回复
这个应该是你的TOMCAT无找到驱动!把你的mysqlDriver.jar放在TOMCAT的LIB目录下!
如果还是不行你就不你上面的全部删掉用这种模式添加:
只需在 server.xml <host></host>之间加上:
<Context path="/salesys" docBase="D:\workspace\salesys" debug="0" workDir="D:\Program Files\Apache Software Foundation\Tomcat 5.5\work\Catalina\localhost\salesys" privileged="true">
<Resource
name="jdbc/tracker"
global="jdbc/tracker"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/tracker?useUnicode=true&characterEncoding=utf-8"
username="root"
password="root"
maxActive="100"
maxIdle="30"
maxWait="10000"
/>
</Context>
wsj1987 2009-05-19
  • 打赏
  • 举报
回复
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://localhost:3306/ssys?useUnicode=true&characterEncoding=gb2312'

报的这个异常

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧