2013-01-18 3 views
0

저는 Maven을 사용하고 있으며 프로젝트에 다음과 같은 종속성이 있습니다.@SpringApplicationContext가있는 Unitils - 일치하는 와일드 카드가 엄격하지만 'context : annotation-config'요소에 대한 선언을 찾을 수 없습니다.

: 내 테스트를 실행하면

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:jee="http://www.springframework.org/schema/jee" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p" 
    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.springframework.org/schema/jee 
    http://www.springframework.org/schema/jee/spring-jee-3.0.xsd 
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 

    <context:annotation-config /> 

    <context:component-scan base-package="fr.meehome.user.dao" use-default-filters="false"> 
     <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" /> 
    </context:component-scan> 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > 
     <property name="driverClassName" value="org.hsqldb.jdbcDriver" /> 
     <property name="url" value="jdbc:hsqldb:mem:testdb" /> 
     <property name="username" value="sa" /> 
     <property name="password" value="" /> 
    </bean> 

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" > 
     <property name="dataSource" ref="dataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>fr.meehome.user.dao.domain.User</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.hbm2ddl.auto">create</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" > 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

    <tx:annotation-driven transaction-manager="transactionManager" /> 

</beans> 

, 난이 스택 트레이스가 : 좋아

<dependency> 
     <groupId>org.unitils</groupId> 
     <artifactId>unitils-spring</artifactId> 
     <version>3.3</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.unitils</groupId> 
     <artifactId>unitils-dbunit</artifactId> 
     <version>3.3</version> 
     <scope>test</scope> 
    </dependency> 

내 테스트 클래스는 official documentation

package fr.meehome.user.dao.impl; 

import org.junit.Assert; 
import org.junit.Test; 
import org.unitils.UnitilsJUnit4; 
import org.unitils.spring.annotation.SpringApplicationContext; 
import org.unitils.spring.annotation.SpringBeanByType; 

import fr.meehome.user.dao.IUserDao; 

@SpringApplicationContext({"/fr/meehome/user/dao/applicationContext-test.xml" }) 
public class UserDaoTest extends UnitilsJUnit4 { 

    @SpringBeanByType 
    private IUserDao userDao; 

    @Test 
    public void dummyTest() { 
     Assert.assertEquals(true, true); 
    } 
} 

내 ApplicationContext의 파일을 지정하는 것입니다

org.unitils.core.UnitilsException: Unable to create application context for locations [/fr/meehome/user/dao/applicationContext-test.xml] 
    at org.unitils.spring.util.ApplicationContextManager.createInstanceForValues(ApplicationContextManager.java:121) 
    at org.unitils.spring.util.ApplicationContextManager.createInstanceForValues(ApplicationContextManager.java:36) 
    at org.unitils.core.util.AnnotatedInstanceManager.getInstanceImpl(AnnotatedInstanceManager.java:234) 
    at org.unitils.core.util.AnnotatedInstanceManager.getInstance(AnnotatedInstanceManager.java:121) 
    at org.unitils.spring.util.ApplicationContextManager.getApplicationContext(ApplicationContextManager.java:65) 
    at org.unitils.spring.SpringModule.getApplicationContext(SpringModule.java:235) 
    at org.unitils.spring.SpringModule$1.isApplicableFor(SpringModule.java:108) 
    at org.unitils.database.transaction.impl.DefaultUnitilsTransactionManager.getTransactionManagementConfiguration(DefaultUnitilsTransactionManager.java:180) 
    at org.unitils.database.transaction.impl.DefaultUnitilsTransactionManager.startTransaction(DefaultUnitilsTransactionManager.java:96) 
    at org.unitils.database.DatabaseModule.startTransaction(DatabaseModule.java:410) 
    at org.unitils.database.DatabaseModule.startTransactionForTestMethod(DatabaseModule.java:381) 
    at org.unitils.database.DatabaseModule$DatabaseTestListener.beforeTestSetUp(DatabaseModule.java:535) 
    at org.unitils.core.Unitils$UnitilsTestListener.beforeTestSetUp(Unitils.java:273) 
    at org.unitils.UnitilsJUnit4TestClassRunner$TestListenerInvokingMethodRoadie.runBeforesThenTestThenAfters(UnitilsJUnit4TestClassRunner.java:151) 
    at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:84) 
    at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49) 
    at org.unitils.UnitilsJUnit4TestClassRunner.invokeTestMethod(UnitilsJUnit4TestClassRunner.java:95) 
    at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:61) 
    at org.unitils.UnitilsJUnit4TestClassRunner.access$000(UnitilsJUnit4TestClassRunner.java:44) 
    at org.unitils.UnitilsJUnit4TestClassRunner$1.run(UnitilsJUnit4TestClassRunner.java:62) 
    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) 
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) 
    at org.unitils.UnitilsJUnit4TestClassRunner.run(UnitilsJUnit4TestClassRunner.java:68) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
Caused by: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 18 in XML document from class path resource [fr/meehome/user/dao/applicationContext-test.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'context:annotation-config'. 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:80) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:423) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353) 
    at org.unitils.spring.util.ApplicationContextManager.createInstanceForValues(ApplicationContextManager.java:117) 
    ... 28 more 
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'context:annotation-config'. 
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 
    at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source) 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown Source) 
    at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source) 
    at org.apache.xerces.impl.xs.XMLSchemaValidator.emptyElement(Unknown Source) 
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) 
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) 
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) 
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) 
    at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388) 
    ... 40 more 

나 이미 stackoverflow에 많은 probleme을보고 솔루션은 xmlns 컨텍스트와 schemaLocation의 오른쪽 선언을하는 것입니다. 그리고 그들은이 경우에 좋다.

xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation=" 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd" 

는 org.unitils.spring.annotation.SpringApplicationContext가

<context:annotation-config /> 

어떤 생각을로드 할 수 없습니다 버전이 될 수 있습니까?

+0

에 적합한 버전을 포함해야합니다 : 그것은 unitils 제공되지 않는 경우 직접 봄 의존성을 포함 할 수 있습니다. org/schema/context/spring-context-3.0.xsd도 classpath에있다. – cowls

+0

실제로 클래스 경로에 spring-context-2.5.2.jar가있다. 3.3 용으로 바꾸십시오. – Rhum1

+0

이제 좋습니다. 나는이 새로운 종속성을 내 치어 추가 있습니다 ' org.springframework 스프링 컨텍스트 $ {spring.version} \t \t ' – Rhum1

답변

1

springframework.org/schema/context/spring-context-3.0.xsd도 수업 경로에 있어야합니다. HTTP : //www.springframework

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

당신은 확인해야 당신이 당신의 네임 스페이스

관련 문제