在tomcat的admin控制台下host里面新建一个context,然后在下面配置datasource,由于是在页面环境下配置,所以一切都显得很简单。
然后就是在jsp里面测试看datasource配置是否成功。
try{
InitialContext ctx=new InitialContext();
Context envCtx = (Context)ctx.lookup("java:comp/env"); ds=(DataSource)envCtx.lookup("jdbc/sqlserver");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
........
}catch(Exception ex) {
out.print(" error , info = "+ex.getMessage());
ex.printStackTrace();
}
执行时报错:
javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
查看了tomat的server.xml、web.xml还有应用下面的web.xml,怎么该都报这个错。
最后只能把数据源配置都删除了,自己手工的来配置数据源。
起初系统配置的数据源在server.xml中的
<GlobalNamingResources> ... </GlobalNamingResources>中,
各个应用是通过 <resource-ref> ... </resource-ref>来引用这个数据源的,总是会报错。反复调试还是不行,真是郁闷,cctv5直播acmilan对chevo上半场也是真无趣,md,
但只要把datasource放在你部署应用的<context> ... </context> 里面定义,就不会在报这个错。
context 可以直接放在 TOMCAT_HOME/server.xml里面的host中
<service>
<host>
context 定义就放在这里
</host>
</service>
如果是在admin控制台中部署的应用,就在 TOMCAT_HOME/conf/Catalina/localhost/YOURWEBAPP.xml中的context里面定义数据源,也就不必再利用resource-ref来引用数据源了。
或者在你的应用的WEB-INF/web.xml中定义也行,总之,datasource的定义最好放在你的web应用的context里面定义,不然就会报上面的错,不知道是不是tomcat自身的问题。http://dev.csdn.net/develop/article/52/52759.shtm
http://dev.csdn.net/develop/article/52/52855.shtm
然后就是在jsp里面测试看datasource配置是否成功。
try{
InitialContext ctx=new InitialContext();
Context envCtx = (Context)ctx.lookup("java:comp/env"); ds=(DataSource)envCtx.lookup("jdbc/sqlserver");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
........
}catch(Exception ex) {
out.print(" error , info = "+ex.getMessage());
ex.printStackTrace();
}
执行时报错:
javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
查看了tomat的server.xml、web.xml还有应用下面的web.xml,怎么该都报这个错。
最后只能把数据源配置都删除了,自己手工的来配置数据源。
起初系统配置的数据源在server.xml中的
<GlobalNamingResources> ... </GlobalNamingResources>中,
各个应用是通过 <resource-ref> ... </resource-ref>来引用这个数据源的,总是会报错。反复调试还是不行,真是郁闷,cctv5直播acmilan对chevo上半场也是真无趣,md,
但只要把datasource放在你部署应用的<context> ... </context> 里面定义,就不会在报这个错。
context 可以直接放在 TOMCAT_HOME/server.xml里面的host中
<service>
<host>
context 定义就放在这里
</host>
</service>
如果是在admin控制台中部署的应用,就在 TOMCAT_HOME/conf/Catalina/localhost/YOURWEBAPP.xml中的context里面定义数据源,也就不必再利用resource-ref来引用数据源了。
或者在你的应用的WEB-INF/web.xml中定义也行,总之,datasource的定义最好放在你的web应用的context里面定义,不然就会报上面的错,不知道是不是tomcat自身的问题。http://dev.csdn.net/develop/article/52/52759.shtm
http://dev.csdn.net/develop/article/52/52855.shtm
解决方案 »
- 用java的IO流,能写入后缀名为xml的文件里面吗?这个xml可以正常使用吗?
- 求助!!文件内容修改替换的问题
- 请教JSP大师们
- struts表单提交用javascript做验证!
- weblogic 9.0 下首页优化,提高多人访问性能的办法
- 进程中出现10多个postgers.exe
- 是否可以在JAVA程序里直接使用JNDI连接数据库呢?
- 方框乱码(下拉列表中的label)是怎么生成的?刷新一遍就正常了,太奇怪了。
- j2ee 服务器的问题 !
- Java 怎么实现根据消息ID和状态 ,调用类不同方法
- 关于struts的一个错误!!!!!
- 关于Hibernate 中使用 ThreadLocal 管理 Session 的疑惑.
{
InitialContext itial = new InitialContext();
DataSource ds = (DataSource)itial.lookup("java:comp/env/jdbc/test");
.......................
connect = ds.getConnection();
System.out.println("Connection poolDataSource");
}
catch(Exception er)
{
System.out.println("Exception in getPoolDataSource: " + er.toString());
}如果配置没错的话,参考上面这段代码
至于tomcat中的连接池的配置,网上一大把,自己搜一下吧