2013-12-22 3 views
-3

Я получаю сообщение об ошибке bean. За пределами тестовых классов это работает. Что делается неправильно? как поднять контекст приложения. даже указать, какие части? Вот мой код:junit не работает @autowired

<properties> 
     <java-version>1.6</java-version> 
     <org.springframework-version>3.1.0.RELEASE</org.springframework-version>  
</properties> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${org.springframework-version}</version> 
     <exclusions> 
      <!-- Exclude Commons Logging in favor of SLF4j --> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.7</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>${org.springframework-version}</version> 
     <scope>test</scope> 
    </dependency> 

корня context.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-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 


<import resource="hibernate-config.xml"/> 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
    // 
</bean> 

@RunWith(SpringJUnit4ClassRunner.class) 
    @ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/root- context.xml" }) 

public class AdminManagerTest5 { 

@Resource(name = "sessionFactory") 
private SessionFactory sessionFactory; 

@Test 
public void t(){ 
    System.out.print(sessionFactory); 

} 

}

гибернации-конфигурации

bean id="sessionFactory"  class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 

    <property name="configLocation"> 
     <value>WEB-INF/spring/hibernate.cfg.xml</value> 
    </property> 

ОШИБКА

Caused by: java.io.FileNotFoundException: class path resource [WEB-  INF/spring/hibernate.cfg.xml] cannot be resolved to URL because it does not exist 
at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:179) 
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:642) 
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) 
... 41 more 

P.S.Sorry за мой английский

+0

Где другие пружинные зависимости? Покажите другие зависимости вашего файла pom.xml. –

ответ

1

Вы с помощью пружинного-тест 4.0 с другими весенними баночек версии 3.1.0.RELEASE. Не делай этого. Используйте весенний тест 3.1.0 или используйте версию 4.0 всех других весовых банок, но не смешивайте несовместимые версии вместе.

+0

если я использую spring-test 3.1.0.RELEASE, a java.lang.IllegalStateException: Не удалось загрузить ApplicationContext –

+0

Затем прочитайте трассировку и сообщение стека исключений, найдите причину исключения и исправьте его. –

+0

Я не знаю, как это исправить. указан путь к файлу hibernate.cfg.xml. –

2

Конфигурация sessionFactory указывает на

<property name="configLocation"> 
    <value>WEB-INF/spring/hibernate.cfg.xml</value> 
</property> 

но каталог WEB-INF/spring не добавляется в путь к классам и, следовательно, весна не может его найти.

Вам нужно указать либо префиксный путь file: (относительный или абсолютный), либо поместить файл где-нибудь, что будет в пути к классам.

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