testQueryArea时一直提示:Failed to load ApplicationContext

来源:2-6 逐层完成SSM的各项配置

qq_一笑_7

2017-10-22

http://img1.sycdn.imooc.com/szimg/59ec967400010ef315750842.jpg

检查了几个配置文件,应该都对着


错误信息:

信息: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]

09:04:09.410 [main] DEBUG org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.

09:04:09.495 [main] DEBUG org.apache.ibatis.io.VFS - Class not found: org.jboss.vfs.VFS

09:04:09.495 [main] DEBUG org.apache.ibatis.io.JBoss6VFS - JBoss 6 VFS API is not available in this environment.

09:04:09.496 [main] DEBUG org.apache.ibatis.io.VFS - Class not found: org.jboss.vfs.VirtualFile

09:04:09.496 [main] DEBUG org.apache.ibatis.io.VFS - VFS implementation org.apache.ibatis.io.JBoss6VFS is not valid in this environment.

09:04:09.497 [main] DEBUG org.apache.ibatis.io.VFS - Using VFS adapter org.apache.ibatis.io.DefaultVFS

09:04:09.497 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Find JAR URL: file:/D:/Java/workspace/o2o/target/classes/com/imooc/o2o/entity

09:04:09.497 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Not a JAR: file:/D:/Java/workspace/o2o/target/classes/com/imooc/o2o/entity

09:04:09.545 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: Area.class

09:04:09.546 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: HeadLine.class

09:04:09.546 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: LocalAuth.class

09:04:09.546 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: PersonInfo.class

09:04:09.547 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: Product.class

09:04:09.547 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: ProductCategory.class

09:04:09.547 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: ProductImg.class

09:04:09.547 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: Shop.class

09:04:09.548 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: ShopCategory.class

09:04:09.548 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: WechatAuth.class

09:04:09.549 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Listing file:/D:/Java/workspace/o2o/target/classes/com/imooc/o2o/entity

09:04:09.549 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Find JAR URL: file:/D:/Java/workspace/o2o/target/classes/com/imooc/o2o/entity/Area.class

09:04:09.549 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Not a JAR: file:/D:/Java/workspace/o2o/target/classes/com/imooc/o2o/entity/Area.class

09:04:09.550 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: ����


09:04:09.589 [main] DEBUG org.mybatis.spring.SqlSessionFactoryBean - Scanned package: 'com.imooc.o2o.entity' for aliases

十月 23, 2017 9:04:09 上午 org.springframework.context.support.GenericApplicationContext refresh

警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring/spring-dao.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [mybatis-config.xml]; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.imooc.o2o.dao.split.DynamicDataSourceInterceptor'.  Cause: java.lang.ClassNotFoundException: Cannot find class: com.imooc.o2o.dao.split.DynamicDataSourceInterceptor

十月 23, 2017 9:04:09 上午 org.springframework.test.context.TestContextManager prepareTestInstance

严重: Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@6615435c] to prepare test instance [com.imooc.o2o.dao.AreaDaoTest@4de4b452]

java.lang.IllegalStateException: Failed to load ApplicationContext

at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)

at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)

at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)

at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)

at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)

at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)

at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)

at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)

at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)

at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring/spring-dao.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [mybatis-config.xml]; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.imooc.o2o.dao.split.DynamicDataSourceInterceptor'.  Cause: java.lang.ClassNotFoundException: Cannot find class: com.imooc.o2o.dao.split.DynamicDataSourceInterceptor

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:742)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)

at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)

at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)

at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:108)

at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:251)

at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)

at org.springframework.test.con

---------------------------------------------------------------------------------------

spring-dao.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置整合mybatis过程 -->

    <!-- 1.配置数据库相关参数properties的属性:${url} -->

    <context:property-placeholder location="classpath:jdbc.properties" />


    <!-- 2.数据库连接池 -->

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

        <!-- 配置连接池属性 -->

        <property name="driverClass" value="${jdbc.driver}" />

        <property name="jdbcUrl" value="${jdbc.url}" />

        <property name="user" value="${jdbc.username}" />

        <property name="password" value="${jdbc.password}" />


        <!-- c3p0连接池的私有属性 -->

        <property name="maxPoolSize" value="30" />

        <property name="minPoolSize" value="10" />

        <!-- 关闭连接后不自动commit -->

        <property name="autoCommitOnClose" value="false" />

        <!-- 获取连接超时时间 -->

        <property name="checkoutTimeout" value="10000" />

        <!-- 当获取连接失败重试次数 -->

        <property name="acquireRetryAttempts" value="2" />

    </bean>


    <!-- 3.配置SqlSessionFactory对象 -->

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <!-- 注入数据库连接池 -->

        <property name="dataSource" ref="dataSource" />

        <!-- 配置MyBaties全局配置文件:mybatis-config.xml -->

        <property name="configLocation" value="classpath:mybatis-config.xml" />

        <!-- 扫描entity包 使用别名 -->

        <property name="typeAliasesPackage" value="com.imooc.o2o.entity" />

        <!-- 扫描sql配置文件:mapper需要的xml文件 -->

        <property name="mapperLocations" value="classpath:mapper/*.xml" />

    </bean>


    <!-- 4.配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 -->

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <!-- 注入sqlSessionFactory -->

        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />

        <!-- 给出需要扫描Dao接口包 -->

        <property name="basePackage" value="com.imooc.o2o.dao" />

    </bean>

</beans>

-------------------------------------------------

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration

  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

  "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!-- 配置全局属性 -->

<settings>

<!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->

<setting name="useGeneratedKeys" value="true" />


<!-- 使用列标签替换列别名 默认:true -->

<setting name="useColumnLabel" value="true" />


<!-- 开启驼峰命名转换:Table{create_time} -> Entity{createTime} -->

<setting name="mapUnderscoreToCamelCase" value="true" />

</settings>

<plugins>

<plugin interceptor="com.imooc.o2o.dao.split.DynamicDataSourceInterceptor">

</plugin>

</plugins>

</configuration>






写回答

2回答

慕前端2173668

2018-11-16

我的也报这个错呢 兄台你怎么解决的啊

0
1
翔仔
如果同学你遇到这个Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.imooc.o2o.dao.split.DynamicDataSourceInterceptor。则证明你这边用的是最终代码的配置,建议你没有相关解决问题的能力之前,请一步步按照视频配置来,因为最终配置里面是后面的内容,有配置加密以及主从库的配置等,这里由于还缺少后面的类所以报错。
2018-11-17
共1条回复

翔仔

2017-10-22

同学好,麻烦把错误信息以文字的形式都贴出来哈,有部分遮住了,而且有可能贴出了之后也会不全,因为这个跟DI注入配置相关,配置信息我这边没办法看到呢。同学请对比下spring-dao.xml mybatis-config.xml 以及mapper的配置。感觉是没找到areaDao或者Area实体类

0
2
翔仔
回复
qq_一笑_7
同学好 Could not resolve type alias 'com.imooc.o2o.dao.split.DynamicDataSourceInterceptor'. Cause: java.lang.ClassNotFoundException: Cannot find class: com.imooc.o2o.dao.split.DynamicDataSourceInterceptor 报了这个错误哈 把mybatis-config.xml里面的这个字段去掉就可以了
2017-10-23
共2条回复

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程