使用JNDI配置数据池问题Cannot create JDBC driver of class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' f解决方法

本文介绍了解决因配置错误导致的数据库连接失败问题,包括检查context.xml配置文件、正确放置JDBC驱动jar包以及避免重复配置等步骤。

这种故障貌似经常见,但是有时候悲剧。

这个故障大多就是与数据库驱动或者在连接错误时出现的,解决方法:

1.先检查自己的context.xml配置文件信息是否错误。(打错字绝对是家常便饭,当然我是新手)

没放jar包只会报Cannot load JDBC driver class(数据库的类库只要放在tomcat\lib中就可以了)

2.还不行,就要看看一个悲剧点,因为context.xml的配置可以有两种,但是不能两种一起使用,如果配置了在tomcat\conf\context,xml的就是不要在自己项目的META-INF目录创建context.xml文件。因为存在两个的话就会在运行时报一下错误。(在tomcat中配置是全局的,而在项目中只有自己可以看到)


2016-6-2 10:00:57 org.apache.catalina.startup.Catalina start

信息: Server startup in 5511 ms
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' 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)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.jbit.news.dao.BaseDao.getConnection(BaseDao.java:58)
at org.jbit.news.dao.impl.NewsDaoImpl.getNewsByNID(NewsDaoImpl.java:104)
at org.jbit.news.biz.impl.NewsBizImpl.getNewsByNID(NewsBizImpl.java:34)

at org.apache.jsp.util.news_005fcontrol_jsp._jspService(news_005fcontrol_jsp.java:145)


最后附加步骤:

1.  配置context.xml文件

要么在tomcat\conf\context.xml中配置,要么在项目的META-INF目录创建context.xml文件(不需要DTD),注意,一定不能两个一起加,否则报错。

2.  配置web.xml

如果在项目META-INF目录创建context.xml文件就不需要了。

3.  jar是放在tomcat中,而不需要在项目中放。

4.  调用lookup()获取对象连接数据库。

/**获取数据库连接对象。

   */

  public ConnectiongetConnection() {

     Context ctx;

     // 获取连接并捕获异常

     try {

       ctx=newInitialContext();

       DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/news");

       conn=ds.getConnection();   

     } catch(NamingException e) {

       e.printStackTrace();

     } catch(SQLException e) {

       e.printStackTrace();

     } 

     return conn;

  }


问题的原因是无法创建JDBC驱动程序的类'com.mysql.jdbc.Driver'来连接URL 'true'。这个问题可能有几个可能的原因。 首先,可能是缺少必要的JDBC驱动程序。根据引用\[2\]和引用\[3\]的描述,您需要确保在Tomcat服务器的lib目录下包含了正确的MySQL JDBC驱动程序的jar文件,例如mysql-connector-java-3.1.8-bin.jar。此外,根据引用\[2\]的描述,您还可能需要将aspectjrt.jar一起放在WEB-INF\lib目录下。 其次,可能是Tomcat服务器的配置问题。根据引用\[3\]的描述,您需要在Tomcat服务器的context.xml文件中添加正确的JDBC驱动程序的配置。确保在<Resource>元素中指定了正确的驱动程序类名(driverClassName)和连接URL(url)。 最后,还有可能是连接URL的格式不正确。根据引用\[1\]的描述,连接URL应该是以jdbc:mysql://开头,后面跟着主机名、端口号和数据库名称等信息。请确保连接URL的格式正确,并且数据库服务器正在运行。 综上所述,您可以尝试以下解决方法: 1. 确保正确安装了MySQL JDBC驱动程序,并将其放置在Tomcat服务器的lib目录下。 2. 检查Tomcat服务器的context.xml文件,确保正确配置JDBC驱动程序的信息。 3. 检查连接URL的格式是否正确,并确保数据库服务器正在运行。 希望这些信息对您有所帮助! #### 引用[.reference_title] - *1* [Cannot create JDBC driver of class 'com.mysql.jdbc](https://blog.csdn.net/fengyun111999/article/details/5753289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [JNDI数据源局部配置解决Cannot create JDBC driver of class '' for connect URL 'null')](https://blog.csdn.net/weixin_42475535/article/details/113563808)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SQL: Cannot create JDBC driver of class '' for connect URL(使用JDNI数据源)](https://blog.csdn.net/immenselee/article/details/103991126)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值