Cannot create JDBC driver of class '' for connect URL 'null'
2013-10-29 15:00
645 查看
如果你在使用jndi配置数据源的过程中反复出现下面的错误,而且你已经使用了很多方式都无法获取正确的数据源,那么就不要再浪费时间了,删除其他的配置方法按下面的方法进行配置,保证你能够有一个好使的数据源,
使用jndi的方式配置tomcat的数据源报了下面的错误:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at com.TestConn.doGet(TestConn.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
解决方法:这说明你的jdbc的数据源并没有被注册,jndi的数据源大致分两部:
第一步:配置web.xml文件
在你的项目的web.xml文件之中加入如下的配置:
<resource-ref>
<description>DB Connection</description>
<!--这个就是你要连接的数据源名称webglDS_A6,下面的Context.xml文件中的数据源名称一定要和此名称一致-->
<res-ref-name>webglDS_A6</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
第二步:配置Context.xml文件
Context.xml文件之中就是连接数据库的详细信息(注意是Context.xml而不是context.xml),这部分的设置有两种情况:
情况一:项目是通过eclipse视图部署到tomcat之中
这时,你只需要在META-INF目录下面建一个Context.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!--下面的配置只是针对tomcat5.0 -->
<Resource name="webglDS_A6" type="javax.sql.DataSource" />
<ResourceParams name="webglDS_A6">
<parameter>
<name>auth</name>
<value>Container</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>password</name>
<value>1</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@10.11.112.80:1521:orcl</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>1</value>
</parameter>
<parameter>
<name>username</name>
<value>pay</value>
</parameter>
</ResourceParams>
<!-- tomcat6.0和tomcat7.0用下面的配置
<Resource name="webglDS_A6" auth="Container"
type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
username="pay" password="1" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@10.11.112.80:1521:orcl"/> -->
</Context>
只是有一点tomcat5.0和tomcat6.0\7.0采用不同的设置,这一点无关紧要,下面就可以对数据源写一个jsp或者servlet进行测试,下面是主体代码,数据源名称为webglDS_A6
Connection conn = null;
Context ctx = null;
ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup("java:comp/env/webglDS_A6");
// 取出连接
conn = ds.getConnection();
情况二,项目直接以war包的形式部署到tomcat之中,这时候就需要在服务器的conf\Catalina\localhost目录下面建立以你的项目名称命名的xml文件,例如我的项目叫hh,那么文件名就应该叫hh.xml,建好之后的目录应该是这样的conf\Catalina\localhost\hh.xml
hh.xml文件的内容就是上述Context.xml文件的内容,只是在Conext节点加入下面的信息
<Context docBase="E:\123\jakarta-tomcat-5.0.28\webapps\hh" path="/hh" reloadable="true">
这样之后你的数据源就可用了。
总结一下:jndi的数据源配置分两步:配置web.xml和配置Context.xml,没有其他
使用jndi的方式配置tomcat的数据源报了下面的错误:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at com.TestConn.doGet(TestConn.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
解决方法:这说明你的jdbc的数据源并没有被注册,jndi的数据源大致分两部:
第一步:配置web.xml文件
在你的项目的web.xml文件之中加入如下的配置:
<resource-ref>
<description>DB Connection</description>
<!--这个就是你要连接的数据源名称webglDS_A6,下面的Context.xml文件中的数据源名称一定要和此名称一致-->
<res-ref-name>webglDS_A6</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
第二步:配置Context.xml文件
Context.xml文件之中就是连接数据库的详细信息(注意是Context.xml而不是context.xml),这部分的设置有两种情况:
情况一:项目是通过eclipse视图部署到tomcat之中
这时,你只需要在META-INF目录下面建一个Context.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!--下面的配置只是针对tomcat5.0 -->
<Resource name="webglDS_A6" type="javax.sql.DataSource" />
<ResourceParams name="webglDS_A6">
<parameter>
<name>auth</name>
<value>Container</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>password</name>
<value>1</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@10.11.112.80:1521:orcl</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>1</value>
</parameter>
<parameter>
<name>username</name>
<value>pay</value>
</parameter>
</ResourceParams>
<!-- tomcat6.0和tomcat7.0用下面的配置
<Resource name="webglDS_A6" auth="Container"
type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
username="pay" password="1" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@10.11.112.80:1521:orcl"/> -->
</Context>
只是有一点tomcat5.0和tomcat6.0\7.0采用不同的设置,这一点无关紧要,下面就可以对数据源写一个jsp或者servlet进行测试,下面是主体代码,数据源名称为webglDS_A6
Connection conn = null;
Context ctx = null;
ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup("java:comp/env/webglDS_A6");
// 取出连接
conn = ds.getConnection();
情况二,项目直接以war包的形式部署到tomcat之中,这时候就需要在服务器的conf\Catalina\localhost目录下面建立以你的项目名称命名的xml文件,例如我的项目叫hh,那么文件名就应该叫hh.xml,建好之后的目录应该是这样的conf\Catalina\localhost\hh.xml
hh.xml文件的内容就是上述Context.xml文件的内容,只是在Conext节点加入下面的信息
<Context docBase="E:\123\jakarta-tomcat-5.0.28\webapps\hh" path="/hh" reloadable="true">
这样之后你的数据源就可用了。
总结一下:jndi的数据源配置分两步:配置web.xml和配置Context.xml,没有其他
相关文章推荐
- SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 解决办法
- 使用TOMCAT5.5连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')
- Cannot create JDBC driver of class '' for connect URL 'null'
- 使用TOMCAT 连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')
- 使用TOMCAT5.5连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null' 及can not load org.gjt.mm.mysql.Driver)
- javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null', cause: null
- 使用TOMCAT5.5连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')
- SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 解决办法
- 使用TOMCAT5.5连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')
- Cannot create JDBC driver of class '' for connect URL 'null' 的解决办法
- Cannot create JDBC driver of class '' for connect URL 'null'
- Cannot create JDBC driver of class '' for connect URL 'null'
- IBatis配置tomcat的JNDI问题解决Cannot create JDBC driver of class '' for connect URL 'null'
- 解决Cannot create JDBC driver of class '' for connect URL 'null'
- Cannot create JDBC driver of class '' for connect URL 'null' 解决方案
- Cannot create JDBC driver of class '' for connect URL 'null'解决方法2——对我有效
- Cannot create JDBC driver of class '' for connect URL 'null'
- Cannot create JDBC driver of class '' for connect URL 'null'
- 使用TOMCAT5.5连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')
- 使用TOMCAT5.5连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')