请教一个数据库连接池的问题

[复制链接]
查看11 | 回复9 | 2017-9-26 13:06:30 | 显示全部楼层 |阅读模式
我在TOMCAT里边配好了连接池,但是我用的struts框架,想把数据库查询和操作放在ACTION里边做,但是发现在JSP页面中可以正常使用的连接池在ACTION里边就用不了
//使用正常
但是同样的语句我放在一个普通的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

at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)

at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)

at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)

at javax.naming.InitialContext.lookup(Unknown Source)

at general.TrySql.main(TrySql.java:24)
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
配置文件看看
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
配置文件如下
tomcat/conf/context.xml中

web-inf/web.xml中的

DB Connection
jdbc/mysql
javax.sql.DataSource
Container

//在普通JAVA中就无法使用,JSP中可以
public class TrySql {
ResultSet rs=null;
try {



DataSource ds=null;

InitialContext ctx=new InitialContext();

ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");

conn = ds.getConnection();

if(conn!=null)

System.out.println("success");
} catch (NamingException e) {

System.out.println("数据源错误");

e.printStackTrace();
} catch (SQLException e) {



System.out.println("sql错误");
}

}
}
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
JSP中可以,action中不可以,我觉得十有八九和servlet有关系。
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
什么意思?NoInitialContextException是不是就是上下文没有成功初始化呢?
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
可以在struts配置里配置数据源
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
我不知道具体什么情况,我也没像你这样配置过数据池。
我是觉得一般写入web.xml的信息在服务器软件启动的时候会被载入,存放在servletcontext/servletconfig对象中,用的时候需要通过servlet,所以一般尤其是用到servletconfig的时候,都会在web.xml中指明对应的servlet,但是你的数据池好像没有。会不会和这个有关?
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
tomcat不同版本, 配置方式不一样
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
可以不用实例servlet?
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
原来是这样,这个数据池必须和action一起用才可以,我当时测试的时候是单独建了一个类来试数据池是不是能用(发现不可以),但是我放在ACTION中取用就可以了。谢谢了!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行