关于TomCat5建立连接Oracle9i的数据库连接池的问题,谢谢了
我想利用TomCat的数据库缓冲池,可是怎么也搞不好,请帮帮我,我使用的环境是Tomcat5.0,用MyEclipse开发的网站。连接的数据库是Oracle9i,我首先将Oracle的jdbc/lib下的所有文件都考到Tomcat的common/lib下
我首先在TomCat Administration中设置了数据源,生成在Web.xml中的片段为:
<GlobalNamingResources>
......
<Resource name= "jdbc/myoracle12 " type= "javax.sql.DataSource "/>
<ResourceParams name= "jdbc/myoracle12 ">
<parameter>
<name> maxWait </name>
<value> 5000 </value>
</parameter>
<parameter>
<name> maxActive </name>
<value> 4 </value>
</parameter>
<parameter>
<name> password </name>
<value> 123 </value>
</parameter>
<parameter>
<name> url </name>
<value> jdbc:oracle:thin:@192.168.10.1:mydb </value>
</parameter>
<parameter>
<name> driverClassName </name>
<value> oracle.jdbc.driver.OracleDriver </value>
</parameter>
<parameter>
<name> maxIdle </name>
<value> 2 </value>
</parameter>
<parameter>
<name> username </name>
<value> sa </value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
然后在catalina/localhost下又建立xml文件WebTest.xml, WebTest为我的网站文件夹名称,内容和上面一样,在外面包了一层:
<Context path= "/DBTest " docBase= "DBTest "
debug= "5 " reloadable= "true " crossContext= "true ">
<Resource name= "jdbc/myoracle12 " type= "javax.sql.DataSource "/>
<ResourceParams name= "jdbc/myoracle12 ">
......
</Context>
最后在我的网站WebTest里面的web.xml中加上:
<res-ref-name> jdbc/myoracle12 </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>
在Servlet的doGet方法中我写这样的调用代码:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup( "java:/comp/env ");
DataSource ds = (DataSource)envContext.lookup( "jdbc/myoracle12 ");
Connection conn = ds.getConnection();//运行出错
......
在ds.getConnection()被调用的时候出现异常:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class ' ' for connect URL 'null '
帮我看看,谢了!~
[解决办法]
<parameter>
<name> url </name>
<value> jdbc:oracle:thin:@192.168.10.1:1521:mydb </value>
</parameter>
改成上面的试一下
[解决办法]
加上这句,还有url要有端口。
<parameter>
<name> factory </name>
<value> org.apache.commons.dbcp.BasicDataSourceFactory </value>
</parameter>
[解决办法]
与我站内联系