java连接池出现javax.naming.NameNotFoundException: Name jdbc is not bound in this Context 或者出现 java.sql.S

java连接池出现javax.naming.NameNotFoundException: Name jdbc is not bound in this Context 或者出现 java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'


或者出现 java.sql.SQLException: Cannot create JDBC driver of class ‘’ for connect URL ‘null’ )

1.问题描述

1.java数据库连接池,使用局部数据源出现
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context 
报错问题
2.解决了问题1后又报 
java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'

2.环境

1.idea + maven
2. Tomcat 9
3. jdk1.8

3.解决方法

1.解决第一个问题

在WEB-INF->web.xml文件中添加如下代码:

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

配置好,如下图:
在这里插入图片描述
其中需要修改框内框中的信息

    <res-ref-name>jdbc/webstoreDS</res-ref-name>
    //这里对应你自己的连接池名字

参看我的例子

 dataSource = (DataSource) context.lookup("java:comp/env/jdbc/webstoreDS");//webstoreDS这是数据源的名字

到这里你会发现又报新错了。

java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'

问题不大,继续向下看

2.解决第二个问题

这是因为冲突问题:
如果你的tomcat也是9版本,(注意,其他版本我没试过)
那就简单多了。

1.找到自己的Tomcat的/conf
找到 context.xml
进去看看。果然,这里的信息还是没有更新
用文本编辑器打开
然后把项目中的context.xml的信息更新到tomcat的context.xml中

如图所示:
在这里插入图片描述

3.解决第二个问题保存,问题解决。

3.资源下载

记得star

https://gitee.com/nalan-taotao/DataSource

猜你喜欢

转载自blog.csdn.net/qq_44218805/article/details/110941999
今日推荐