2012-05-24 11 views
2

클래스 경로를 사용하여 스프링 UTIL의 XSD를 찾을 수 없습니다 : 오류를 얻기

nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/util] 

나는 봄 콩-2.5.6 항아리를 확인 - 그것은 지정된 클래스 경로에 참조 된 파일이 있습니다.

해당 xml 파일 헤더는 아래와 같습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns:batch="http://www.springframework.org/schema/batch" 
xmlns="http://www.springframework.org/schema/beans" 
xmlns:util="http://www.springframework.org/schema/util" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     classpath:org/springframework/beans/factory/xml/spring-beans-2.5.xsd 
     http://www.springframework.org/schema/util 
     classpath:org/springframework/beans/factory/xml/spring-util-2.5.xsd 
     http://www.springframework.org/schema/batch 
     classpath:org/springframework/batch/core/configuration/xml/spring-batch-2.1.xsd"> 

스택 추적 :

at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68) 
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85) 
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76) 
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:201) 
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:147) 
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:132) 
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92) 
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:507) 
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398) 
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) 
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) 
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) 
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) 
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) 
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212) 
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:422) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352) 
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140) 
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84) 

답변

1

당신은 당신의 schemaLocation 속성에있는 스키마의 실제 물리적 위치를 지정할 필요가 없습니다. 이 대신

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns:batch="http://www.springframework.org/schema/batch" 
xmlns="http://www.springframework.org/schema/beans" 
xmlns:util="http://www.springframework.org/schema/util" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://www.springframework.org/schema/util 
     http://www.springframework.org/schema/util/spring-util-2.5.xsd 
     http://www.springframework.org/schema/batch 
     http://www.springframework.org/schema/batch/spring-batch-2.1.xsd"> 

스키마 이름과 위치 사이의 실제 매핑이 스프링에 의해 수행되며 (유효한/적절한 스프링 항아리를 사용하는 가정) 다양한 spring.schemas 파일에 정의처럼보십시오.

+0

응용 프로그램에서 버전이있는 XSD를 거의 사용하지 않아야합니다. 이유는 여기를 참조하십시오. http://stackoverflow.com/questions/20894695/spring-configuration-xml-schema-with-or-outout-version/ 20900801 # 20900801 –

관련 문제