2016-03-12 5 views
1

Как исправить следующее исключение?JUnit + Spring профили: не удалось загрузить класс драйвера JDBC

Невозможно увидеть проблемы в конфигурации.

Он работал хорошо, но после некоторого реорганизации не удалось.

Исключение

java.lang.IllegalStateException: Failed to load ApplicationContext 
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) 
...Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [${jdbc.driverClassName}] 
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:121) 
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1514) 
... 52 more 

Конфигурация

JUnit

@ActiveProfiles("test") 
@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(classes = SpringHsqlTest.class) 
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, 
    DirtiesContextTestExecutionListener.class, 
    TransactionalTestExecutionListener.class, 
    DbUnitTestExecutionListener.class, 
    ForeignKeyBreakTestExecutionListener.class}) 
@ContextConfiguration({"classpath:contexts/bean-locations.xml"}) 
public class SpringHsqlTest {//... 

От pom.xml

<dependency> 
     <groupId>org.hsqldb</groupId> 
     <artifactId>hsqldb</artifactId> 
     <version>2.3.3</version> 
     <scope>test</scope> 
    </dependency> 

profiles.xml

<beans profile="test"> 
    <context:property-placeholder ignore-resource-not-found="false" 
            location="classpath*:properties/test-database.properties"/> 
</beans> 

Из данных-source.xml

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}"/> 
    <property name="username" value="${jdbc.userName}"/> 
    <property name="password" value="${jdbc.password}"/> 
    <property name="url" value="${jdbc.url}"/> 
</bean> 

свойств/test-database.properties

jdbc.dialect=H2Dialect 
jdbc.driverClassName=org.hsqldb.jdbcDriver 
jdbc.url=jdbc:hsqldb:mem:dbtest-local 
jdbc.userName=sa 
jdbc.password= 
+0

Вы уверены, что 'profiles.xml' будет поднят весной? –

+0

Это приложение для загрузки весны? если это так, используйте «SpringApplicationConfiguration» или «ContextConfiguration» для указания файлов конфигурации. –

ответ

0

Фикс

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.springframework.org/schema/beans" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 
    ... 
    <import resource="profiles.xml"/> 
</beans> 

 Смежные вопросы

  • Нет связанных вопросов^_^