当前位置: 代码迷 >> Java Web开发 >> java web 联接数据源
  详细解决方案

java web 联接数据源

热度:787   发布时间:2016-04-16 21:48:56.0
java web 连接数据源
本帖最后由 u013536983 于 2014-10-11 15:12:17 编辑
报错如下:

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
....


按照教程我配置了web.xml 和 Context.xml(位于META-INF文件夹下面)
web.xml

  <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/BookDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>


Context.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<Context  reloadable="true" path="/hello" docBase="hello">
  <Resource name="jdbc/BookDB" auth="Container" type="javax.sql.DataSource"
     maxActive="100" maxIdle="30" maxWait="10000"
     username="root" password="1234" 
     driverClassName="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true"/>  
</Context>



这个是连接数据源的jsp代码:

  Context ctx = new InitialContext();
  DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/BookDB");
  con = ds.getConnection();


并且连接驱动mysql5.0.jar包放在了tomcat的lib文件夹下面
不知道哪里出了问题, 访问网页一直是:

不好意思, 只有这么多分了T T
------解决思路----------------------
引用:
Quote: 引用:

你这是啥啊
url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true???
典型的配置啊

<Resource name="xxx" auth="Container" 
 type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" 
 username="xx" password="xxx driverClassName="oracle.jdbc.driver.OracleDriver" 
 url="jdbc:oracle:thin:@192.168.0.0:1521:orcl"/> -->
 </Context>


这个url="jdbc:mysql://localhost:3306/BookDB?autoReconnect=true 是用来连接mysql数据库的格式, 您给的这个url="jdbc:oracle:thin:@192.168.0.0:1521:orcle"/> 是连接oracle数据库的格式吧

好吧 


解决方案:
你在%TOMCAT_HOME%\conf\Catalina\新建localhost下找到你的web应用对应的.xml文件,
如test.xml,并在此文件的下添入代码:
<ResourceLink name="jdbc/BookDB" global="jdbc/mysql" type="javax.sql.DataSourcer"/>

重启tomcat。
这个靠谱
这种就是采用虚拟配置目录部署
不需要把你的项目部署到tomcat,直接一个xml指向你项目的web-inf地址
xml的名称就是你访问
xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="false" docBase="D:/eclipse_workpase/项目名称/WebRoot" />
<ResourceLink name="jdbc/BookDB" global="jdbc/mysql" type="javax.sql.DataSourcer"/>


采用这种方法试下吧
------解决思路----------------------
还没解决吗?
  相关解决方案