我用的是tomcat5.5,配置了日志之后打印出下列信息:
ERROR main org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
Caused by:
java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328)
at java.lang.Class.getConstructor0(Class.java:2640)
at java.lang.Class.getDeclaredConstructor(Class.java:1953)
……
從日志信息看問題已經(jīng)很明顯了,是applicationContext.xml的dataSource問題。
解決方法:
1 將<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
改為<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">之后問題得到解決。(org.springframework.jdbc.datasource.DriverManagerDataSource 不可以使用連接池。)
2 org.apache.commons.dbcp.BasicDataSource作為注入的DataSource源,為了使用 DBCP的功能,必須要將commons-dbcp.jar加入CLASSPATH中,另外還需要commons-pool.jar和commons- collections.jar,這些都可以在Spring的lib目錄下找到。
org.springframework.jdbc.datasource.DriverManagerDataSource并沒有提供連接池的功能,只能作作簡單的單機連接測試。使用org.apache.commons.dbcp.BasicDataSource時缺少commons-pool.jar所以會出現(xiàn)如題的問題。
從日志信息看問題已經(jīng)很明顯了,是applicationContext.xml的dataSource問題。
解決方法:
1 將<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
改為<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">之后問題得到解決。(org.springframework.jdbc.datasource.DriverManagerDataSource 不可以使用連接池。)
2 org.apache.commons.dbcp.BasicDataSource作為注入的DataSource源,為了使用 DBCP的功能,必須要將commons-dbcp.jar加入CLASSPATH中,另外還需要commons-pool.jar和commons- collections.jar,這些都可以在Spring的lib目錄下找到。
org.springframework.jdbc.datasource.DriverManagerDataSource并沒有提供連接池的功能,只能作作簡單的單機連接測試。使用org.apache.commons.dbcp.BasicDataSource時缺少commons-pool.jar所以會出現(xiàn)如題的問題。