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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34884729/article/details/51564139

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

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

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;

  }


阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页