tomcat与orcale的连接 池问题,

swallowsky哈罗 2003-08-19 03:02:12
tomcat 的server.xml的连接池设置
<Context path="/mms" docBase="mms" debug="0"
reloadable="true" crossContext="true">
<Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/OracleDB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:oracle:thin:@192.168.0.1:1521:orcl9i</value> </parameter> <parameter> <name>username</name> <value>system</value> </parameter> <parameter> <name>password</name> <value>newman12</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>maxWait</name> <value>-1</value> </parameter> </ResourceParams>
</Context>
测试的jsp页
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import= "java.sql.* "%>
<%@ page import= "javax.naming.* "%>
<% try{ Context initCtx = new InitialContext();
Context ctx=(Context)initCtx.lookup("java:comp/env"); //获取连接池对象
Object obj = (Object) ctx.lookup("jdbc/OracleDB"); //类型转换
javax.sql.DataSource ds = (javax.sql.DataSource)obj;

Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String strSql = " insert into testpeter(userid) values('00001') "; stmt.executeUpdate(strSql);
strSql = " select id,name from testpeter ";
ResultSet rs = stmt.executeQuery(strSql);
if(rs.next())
{ out.println(rs.getString(1));
out.println(rs.getString(2));
}
}catch(Exception ex){ ex.printStackTrace();
throw new SQLException("cannot get Connection pool."); }%><hr>
报错:
javax.servlet.ServletException: cannot get Connection pool.
请大家帮帮忙。谢谢
...全文
48 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
oopliu 2003-10-22
  • 打赏
  • 举报
回复
study
sidshen 2003-08-19
  • 打赏
  • 举报
回复
如果没有jdbc for sql server2000就会出现这个错误,你可以看看tomcat控制台,那里有具体的出错信息
oopliu 2003-08-19
  • 打赏
  • 举报
回复
下面是一个成功事例:
conf/server.xml的修改
<!-- Tomcat Root Context -->

<Context path="" docBase="ROOT" debug="0">

<Resource name="jdbc/OracleDB" auth="Container"

type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/OracleDB">

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>oracle.jdbc.driver.OracleDriver</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:oracle:thin:@your ip address:1521:oracle</value>

</parameter>

<parameter>

<name>username</name>

<value>oracle</value>

</parameter>

<parameter>

<name>password</name>

<value>oracle</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>20</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>10</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>-1</value>

</parameter>

</ResourceParams>

</Context>
我改的是根目录。
测试页面:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import= "java.sql.* "%>
<%@ page import= "javax.naming.* "%>
<%
try{
Context initCtx = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource) initCtx.lookup("java:comp/env/jdbc/OracleDB");
Connection conn = ds.getConnection();
System.out.println("conn------"+conn);
Statement stmt = conn.createStatement();
System.out.println("stmt------"+stmt);
String strSql = " select id,name from staff";
ResultSet rs = stmt.executeQuery(strSql);
while(rs.next()){
out.println(rs.getString(1));
out.println(rs.getString(2));
}
}catch(Exception ex){

ex.printStackTrace();
throw new SQLException("cannot get Connection pool.");
}
%>
<hr>

yaray 2003-08-19
  • 打赏
  • 举报
回复
关注与学习ing...

如问题已解决,烦请楼主发个消息给我,我也学习一下.谢谢先!!!

81,091

社区成员

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

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