tomcat数据库连接池出异常,求解!

royaki 2009-07-27 06:31:16
我是这么做的(我是按照v512高端JAVA视频上的配置的。):
1、先修改tomcat5.5/conf/content.xml,我加上了如下代码:
<Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30"
maxWait="10000" username="root" password="56906950" driverClassName="com.mysql.jdbc.Dirver"
url="jdbc:mysql://127.0.0.1:3333/music" />

其中3333是我的数据库端口,music是我需要连接的数据库...

2、把mysql驱动放进tomcat5.5/common/lib文件夹中

3、然后再项目中引用:
Context context=new InitialContext();
DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/mysqlds");
conn=ds.getConnection();

然后启动tomcat服务器,但是用测试JAVA类测试连接的时候,出现异常:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
...全文
171 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangbo520 2009-07-27
  • 打赏
  • 举报
回复
TOMCAT的自带文档里面有设置的说明,自己看一下吧,有些版本的设置方法不同的,要注意,还是以自带文档中的说明为准吧
shadow55 2009-07-27
  • 打赏
  • 举报
回复
连接池是在tomcat服务启动的时候将配置信息读入的,你直接运行java类的话,tomcat池都没有启动,都没有配置信息,它肯定不行了。
royaki 2009-07-27
  • 打赏
  • 举报
回复
谢谢各位的提醒
我把所有的手工错误改正后,在JSP页面进行了调试,发现JSP页面可以成功,但是在JAVA类里面就不行了
这是怎么回事呢?

一般在数据库操作层不都是java类么,这样的话数据源应该有办法在java类里直接使用吧?
public class DataSourceTest {
public static void main(String[] args){
DataSourceTest data=new DataSourceTest();
Connection conn=data.getConn();
}

public Connection getConn(){
Connection conn=null;
try{

Context context=new InitialContext();
DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/mysqlds");
conn=ds.getConnection();
if(conn!=null)
System.out.println("------CONN生成------");
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
}

这是我的JAVA测试类
ouyangyh 2009-07-27
  • 打赏
  • 举报
回复
应该是
DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/mysqlds");
royaki 2009-07-27
  • 打赏
  • 举报
回复
回复楼上的,我的数据库端口是3333,数据库是music,url没有问题。
DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/mysqlds");
字符串确实是comp,我按照例子做的啊。
是不是需要配置JNDI什么的?
除了这几部还需要做别的什么吗?

谢谢各位的热心啊
guxingfeiyu 2009-07-27
  • 打赏
  • 举报
回复
classpath中加入mysql的驱动。(测试用例的运行时配置是否有配置mysql驱动的路径?)

另外总觉得你的代码配置有问题,我没这么用过,不知道是否说得正确:
<Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30"
maxWait="10000" username="root" password="56906950" driverClassName="com.mysql.jdbc.Dirver"
url="jdbc:mysql://127.0.0.1:3333/music" />
这里的jdbc/mysqlds是否是正确的?运行时路径对吗?

DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/mysqlds");
貌似没有comp吧?是不是com?


yqsshr 2009-07-27
  • 打赏
  • 举报
回复
url="jdbc:mysql://127.0.0.1:3333/music" />
这个端口有问题吧,,mysql默认的是3306,你改端口了?
royaki 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guxingfeiyu 的回复:]
改回去后出错代码是什么?

[/Quote]
还是那个...
guxingfeiyu 2009-07-27
  • 打赏
  • 举报
回复
改回去后出错代码是什么?
royaki 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 guxingfeiyu 的回复:]
com.mysql.jdbc.Dirver
应该是
com.mysql.jdbc.Driver

[/Quote]
谢谢啊!
但是我该回去后也还是不行啊,是不是别的地方弄错了呢?
guxingfeiyu 2009-07-27
  • 打赏
  • 举报
回复
com.mysql.jdbc.Dirver
应该是
com.mysql.jdbc.Driver
royaki 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fanyuanwai 的回复:]
连接数太多了
[/Quote]
楼上你好,连接数跟什么有联系呢?我是按照例子上做的,现在我改成10个连接依然不行啊。
谢谢!
凡员外 2009-07-27
  • 打赏
  • 举报
回复
连接数太多了

81,092

社区成员

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

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