`
- 浏览:
372526 次
- 性别:
- 来自:
北京
-
Error creating bean with name 'dataSource' defined in ServletContext resource
在MAVEN做SSH整合的时候,开始用了org.apache.commons.dbcp.BasicDataSource类,以前生成项目的时候没问题,只是对数据库的操作之后,就会报
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)
……
从日志信息看问题已经很明显了,是applicationContext.xml的dataSource 问题。
将
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
改为
<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
改过之后,确实没问题了,原因是
org.springframework.jdbc.datasource.DriverManagerDataSource 不可以使用连接池。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所以会出现如题的问题。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
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/...
cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [EmployeeSpring.xml]: Initialization of ...
15:53:53,359 ERROR [common] 获取默认数据源 Error creating bean with name 'dataSource' defined in resource loaded through InputStream: Initialization of bean failed; nested exception is javax.naming....
对于Hibernate,错误`org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in resource`可能是因为缺少JTA(Java Transaction API)的支持,例如找...
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed;...
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in file [F:\IdeaProjects\ssmDemo1\out\artifacts\ssmDemo1_war_exp
Name salesDataSource is not bound in this Context,连接池的问题
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext ``` **问题描述:** 这是由于Spring在...
在这个例子中,`dataSource()`方法返回了一个`DataSource`实例,这个`bean`会被Spring容器管理。`@ConfigurationProperties`注解允许我们将YAML或properties配置文件中的属性绑定到`DataSource`的配置上,`prefix = ...
在Spring框架中,`@Resource`主要用于注入由Spring管理的bean,如数据源(DataSource)等。默认情况下,Spring会尝试找到与注解中指定名字相匹配的bean并注入。如果没有指定名字,Spring会根据setter方法或字段名来...
<Resource name="jdbc/bookstore" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="yourMySQLName" password="yourPSW" driverClassName=...
例如,如果有一个名为`dataSource`的Bean,且类型为`DataSource`,那么在类中定义一个`@Autowired`的`DataSource`字段,Spring就会自动将`dataSource`Bean注入到这个字段中。`@Autowired`可以与`@Qualifier`结合使用...
在Spring框架中,`dataSource`是用于管理数据库连接的核心组件,它是`DataSource`接口的一个实现,通常由Apache的`DBCP`、`C3P0`或HikariCP等库提供。`dataSource`的配置和与IOC(Inversion of Control,控制反转)...
... <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name=... <property name="dataSource"><ref bean="dataSourceProxy"/> </bean> </beans>
<Resource name="jdbc/MyDB" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb" username="myuser" password="mypassword" ...
@Resource(name = "jdbc/OracleDS") private DataSource dataSource; @Bean public DataSource springDataSource() { return dataSource; } } ``` - **XML配置**:在传统的Spring应用中,可以在`beans....
例如,如果有两个DataSource bean,一个名为`primaryDataSource`,另一个名为`secondaryDataSource`,我们可以通过`@Resource(name = "primaryDataSource")`来确保正确地注入主数据源。 总的来说,`@Resource`注解...
在这个例子中,Spring会查找类型为`DataSource`的bean,并将其注入到`dataSource`字段。如果存在多个相同类型的bean,可以通过`@Qualifier`注解指定特定的bean,或者通过`required`属性设置为`false`来允许不注入...
<property name="dataSource" ref="dataSource"/> </bean> ``` 4. **数据源优化**: 随着高性能数据库连接池的出现,如C3P0、Druid和HikariCP,它们提供了更优秀的连接管理和性能优化。比如HikariCP以其极低的...
完成配置后,我们可以将`DruidDataSource`作为Spring框架中的Bean进行管理,或者在代码中直接使用。在Spring中,通常通过`@Configuration`和`@Bean`注解进行声明: ```java @Configuration public class ...