2016-07-11 3 views
0

Я использую весной в моем тесте, чтобы загрузить макет «categoryDAO» delcared в моем файле testApplicationContext.xml, но работает тест повышает ошибка:Spring applicationContext.xml: Не удалось найти Spring NamespaceHandler для пространства имен XML-схемы

java.lang.IllegalStateException: Failed to load ApplicationContext 
... 
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.mockito.org/spring/mockito] 
Offending resource: file [/Users/sebastien/dev/categorydao/target/test-classes/testApplicationContext.xml] 

    at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70) 

Вот тест я бегу:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = {"classpath*:**/testApplicationContext.xml"}) 
public class CategoryDAORetryTest { 

    @Autowired 
    CategoryDAO categoryDAO; 

    @Test 
    public void try_several_times() { 
     when(categoryDAO.list(anyInt())) 
     .thenThrow(new RuntimeException("Remote Exception 1")) 
     .thenThrow(new RuntimeException("Remote Exception 2")) 
     .thenReturn(Arrays.asList(new CategoryDTO())); 

     assertThat(categoryDAO.list(SITE_EN_TGU_US, 10).size(), equalTo(1)); 
    } 

    @Configuration 
    @EnableRetry 
    public static class SpringConfig { 

    } 
} 

Вот некоторые другие сведения, связанные зависимостями, которые я использую:

<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" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:mockito="http://www.mockito.org/spring/mockito" 
    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-3.0.xsd 
    http://www.mockito.org/spring/mockito classpath:META-INF/mockito.xsd 
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 

    <context:component-scan base-package="com" /> 

    <mockito:mock id="categoryDAO" class="com.purch.category.dao.CategoryDAO" /> 

    <mvc:annotation-driven /> 
</beans> 

Я также файл mockito.xsd использовать макет заметку:

. 
└── src 
    ├── main 
    │   ├── java 
... 
    │   └── resources 
    │    └── hibernate.cfg.xml 
    └── test 
     ├── java 
     │   └── com 
     │    ├── purch 
     │    │   └── category 
     │    │    └── dao 
     │    │     ├── CategoryDAORetryTest.java 
     └── resources 
      ├── META-INF 
      │   ├── mockito.xsd 
      │   ├── spring.handlers 
      │   ├── spring.schemas 
      │   └── spring.tooling 
      └── testApplicationContext.xml 

Вот список весенних библиотек я использую в моей pom.xml с «dep.version.spring» в «4.3.1. RELEASE ":

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>${dep.version.spring}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-core</artifactId> 
    <version>${dep.version.spring}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-web</artifactId> 
    <version>${dep.version.spring}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-test</artifactId> 
    <version>${dep.version.spring}</version> 
</dependency> 

<dependency> 
    <groupId>commons-beanutils</groupId> 
    <artifactId>commons-beanutils-core</artifactId> 
    <version>${dep.version.commons.beanutils}</version> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>${dep.version.hibernate-core}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-jpa</artifactId> 
    <version>1.9.4.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-c3p0</artifactId> 
    <version>5.1.0.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-aop</artifactId> 
    <version>${dep.version.spring}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.retry</groupId> 
    <artifactId>spring-retry</artifactId> 
    <version>1.1.2.RELEASE</version> 
</dependency>  
<dependency> 
    <groupId>org.aspectj</groupId> 
    <artifactId>aspectjweaver</artifactId> 
    <version>1.8.8</version> 
</dependency> 

файл mockito.xsd хранится в моем проекте:

<?xml version="1.0" encoding="UTF-8"?> 
<xsd:schema xmlns="http://www.mockito.org/spring/mockito" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    targetNamespace="http://www.mockito.org/spring/mockito" 
    elementFormDefault="qualified" 
    attributeFormDefault="unqualified"> 

    <xsd:import namespace="http://www.springframework.org/schema/beans" 
     schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd"/> 

    <xsd:element name="mock"> 
     <xsd:complexType> 
     <xsd:complexContent> 
      <xsd:extension base="beans:identifiedType"> 
       <xsd:attribute name="class" type="xsd:string" use="required"/> 
       <xsd:attribute name="useStaticMap" type="xsd:boolean" default="false" /> 
      </xsd:extension> 
     </xsd:complexContent> 
     </xsd:complexType> 
    </xsd:element> 

    <xsd:element name="spy"> 
     <xsd:complexType> 
     <xsd:attribute name="beanName" type="xsd:string" use="required"/> 
     </xsd:complexType> 
    </xsd:element> 

</xsd:schema> 
+0

Проблема заключается в ваших 'spring.schemas' и' spring.handler' файлах. –

+0

Проблема глупа .... импорт «springockito» отсутствовал в pom.xml. :( Кстати, спасибо за ваш ответ! – seb

ответ

0

импорт "springockito" не хватало в моей pom.xml!

<dependency> 
    <groupId>org.kubek2k</groupId> 
    <artifactId>springockito</artifactId> 
    <version>1.0.4</version> 
    <scope>test</scope> 
</dependency> 
Смежные вопросы