`

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所以会出现如题的问题。
2
0
分享到:
评论

相关推荐

    SSH整合项目中容易出现的错误

    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/...

    spring框架进行简单的增加操作出现的错误,解决方法

    cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [EmployeeSpring.xml]: Initialization of ...

    java工程错误信息解析和总结

    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....

    在学习中发现的一些ssh-error

    对于Hibernate,错误`org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in resource`可能是因为缺少JTA(Java Transaction API)的支持,例如找...

    S2SH整合报错

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed;...

    ssmDemo1:SSM框架整合练习项目 来自《2017-7黑马49期web》

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in file [F:\IdeaProjects\ssmDemo1\out\artifacts\ssmDemo1_war_exp

    Tomcat启动时报错:Name salesDataSource is not bound in this Context

    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在...

    SpringBoot框架Datasource注入

    在这个例子中,`dataSource()`方法返回了一个`DataSource`实例,这个`bean`会被Spring容器管理。`@ConfigurationProperties`注解允许我们将YAML或properties配置文件中的属性绑定到`DataSource`的配置上,`prefix = ...

    hibernate的resource使用

    在Spring框架中,`@Resource`主要用于注入由Spring管理的bean,如数据源(DataSource)等。默认情况下,Spring会尝试找到与注解中指定名字相匹配的bean并注入。如果没有指定名字,Spring会根据setter方法或字段名来...

    数据池连接Name jdbc is not bound in this Context解决方案

    &lt;Resource name="jdbc/bookstore" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="yourMySQLName" password="yourPSW" driverClassName=...

    Spring In Action 使用@Autowired 和@ Resource 自动装配Bean

    例如,如果有一个名为`dataSource`的Bean,且类型为`DataSource`,那么在类中定义一个`@Autowired`的`DataSource`字段,Spring就会自动将`dataSource`Bean注入到这个字段中。`@Autowired`可以与`@Qualifier`结合使用...

    spring中dataSource的配置以及配合IOC的使用

    在Spring框架中,`dataSource`是用于管理数据库连接的核心组件,它是`DataSource`接口的一个实现,通常由Apache的`DBCP`、`C3P0`或HikariCP等库提供。`dataSource`的配置和与IOC(Inversion of Control,控制反转)...

    spring applicationContext 配置文件

    ... &lt;bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&gt; &lt;property name=... &lt;property name="dataSource"&gt;&lt;ref bean="dataSourceProxy"/&gt; &lt;/bean&gt; &lt;/beans&gt;

    DataSource

    &lt;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" ...

    Spring配置weblogic中的Datasource

    @Resource(name = "jdbc/OracleDS") private DataSource dataSource; @Bean public DataSource springDataSource() { return dataSource; } } ``` - **XML配置**:在传统的Spring应用中,可以在`beans....

    编码剖析@Resource注解的实现原理

    例如,如果有两个DataSource bean,一个名为`primaryDataSource`,另一个名为`secondaryDataSource`,我们可以通过`@Resource(name = "primaryDataSource")`来确保正确地注入主数据源。 总的来说,`@Resource`注解...

    1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf

    在这个例子中,Spring会查找类型为`DataSource`的bean,并将其注入到`dataSource`字段。如果存在多个相同类型的bean,可以通过`@Qualifier`注解指定特定的bean,或者通过`required`属性设置为`false`来允许不注入...

    学习Spring笔记_DataSource

    &lt;property name="dataSource" ref="dataSource"/&gt; &lt;/bean&gt; ``` 4. **数据源优化**: 随着高性能数据库连接池的出现,如C3P0、Druid和HikariCP,它们提供了更优秀的连接管理和性能优化。比如HikariCP以其极低的...

    JDBC DruidDataSource dataSource = new DruidDataSource();

    完成配置后,我们可以将`DruidDataSource`作为Spring框架中的Bean进行管理,或者在代码中直接使用。在Spring中,通常通过`@Configuration`和`@Bean`注解进行声明: ```java @Configuration public class ...

Global site tag (gtag.js) - Google Analytics