今天用tomcat的jndi服务器写了个jndi数据源的代码报错如下:
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:766)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at jdbc.javabbs.DatabaseBean.getConnection(DatabaseBean.java:43)
排了一早上反反复复。总是找不到,后来在摆渡上找到答案。原来是mysql的jar包不能放在项目的lib下,而要放在common的lib下面。
其实想想也对。common下的lib是tomcat用的。而我们用jndi建立连接就是jndi去做DriverManager的事情。一个数据源是全局的又不是针对哪个具体的项目的。所以我觉的放在common里是对的。
要加强理论功底。解决问题1要靠经验2要靠理论!