【问题标题】:Error loading class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource'为名为“dataSource”的 bean 加载类 [org.apache.commons.dbcp.BasicDataSource] 时出错
【发布时间】:2013-12-31 19:19:12
【问题描述】:

*是控制台日志错误*

java.lang.IllegalStateException: 无法加载 ApplicationContext

原因:org.springframework.beans.factory.BeanCreationException:创建名为“loginLogDao”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 org.springframework.jdbc.core.JdbcTemplate com.spring.dao.LoginLogDao.jdbcTemplate;嵌套异常是 org.springframework.beans.factory.CannotLoadBeanClassException:为类路径资源 [applicationContext.xml] 中定义的名称为“dataSource”的 bean 加载类 [org.apache.commons.dbcp.BasicDataSource] 时出错:类文件有问题或依赖类;嵌套异常是 java.lang.UnsupportedClassVersionError: Bad version number in .class file 相关原因:org.springframework.beans.factory.CannotLoadBeanClassException:为类路径资源 [applicationContext.xml] 中定义的名称为“dataSource”的 bean 加载类 [org.apache.commons.dbcp.BasicDataSource] 时出错:类文件或依赖类;嵌套异常是 java.lang.UnsupportedClassVersionError: Bad version number in .class file

下面是我的 applicationContext.xml

<context:component-scan base-package="com.spring.dao" />
<context:component-scan base-package="com.spring.service" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    p:driverClassName="com.mysql.jdbc.Driver"
    p:url="jdbc:mysql://192.168.196.5:3307/apu" 
    p:username="dev"
    p:password="password" />
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"
    p:dataSource-ref="dataSource" />

<bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
    p:dataSource-ref="dataSource" />
<aop:config proxy-target-class="true">
    <aop:pointcut id="serviceMethod" expression="execution(* com.spring.service..*(..))" />
    <aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <tx:method name="*" />
    </tx:attributes>
</tx:advice>

下面是我的测试文件

    import static org.junit.Assert.*;

    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import com.spring.model.User;
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations={"classpath:/applicationContext.xml"})
    public class TestUserService {

    @Autowired
    private UserService userService;
    @Test
    public void hasMatchUser() {
        boolean b1=userService.hasMatchUser("admin", "123456");
        boolean b2=userService.hasMatchUser("admin", "11111");
        assertTrue(b1);
        assertTrue(!b2);
    }

    @Test
    public void findUserByName(){
        User user = userService.findUserByUserName("admin");
        assertEquals(user.getUserName(),"admin");
    }
}

我不知道如何解决这个问题,谁能帮助我? 非常感谢!

【问题讨论】:

    标签: java eclipse spring


    【解决方案1】:

    看来您必须更改 org.apache.commons.dbcp.BasicDataSource 的 jar 文件。这会产生问题

    UnsupportedClassVersionError: Bad version number in .class file Related cause:     
    org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class 
    [org.apache.commons.dbcp.BasicDataSource
    

    【讨论】:

    • 我添加了 commons-dbcp-1.4.jar 和 commons-pool-1.6.jar 但问题没有解决
    • 谢谢我已经解决问题了 把commons-dbcp-1.4.jar改成commons-dbcp-1.2.2.jar
    【解决方案2】:

    显示错误版本号错误是因为您可能已将 java 文件编译为具有一个版本的类文件,并尝试使用较早版本运行它。检查开发和其他环境是否存在版本冲突。

    【讨论】:

      猜你喜欢
      • 2019-07-02
      • 2018-01-25
      • 1970-01-01
      • 2017-05-09
      • 2017-08-25
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 2019-03-16
      相关资源
      最近更新 更多