시작시 스프링 웹 응용 프로그램을 시작할 때 다음 오류가 발생합니다. 수코양이.클래스 네임 스페이스 [http://www.springframework.org/schema/batch]가 [org.springframework.beans.factory.xml.NamespaceHandler] 인터페이스를 구현하지 않음
기본적으로 beans.xml 파일이 처리 될 때 다음 클래스가 순서대로로드됩니다.
org.springframework.context.config.ContextNamespaceHandler는 URI http://www.springframework.org/schema/util
org.apache.cxf.jaxws.spring을 처리하는 URI를 http://www.springframework.org/schema/context
org.springframework.beans.factory.xml.UtilNamespaceHandler를 처리한다. NamespaceHandler가 URI를 URI http://cxf.apache.org/transports/http/configuration
org.sp을 처리 할 수 http://cxf.apache.org/jaxws
org.apache.cxf.transport.http.spring.NamespaceHandler를 처리하는 URI를 처리 할 ringframework.batch.core.configuration.xml.CoreNamespaceHandler http://www.springframework.org/schema/batch
그러나 배치 URI에 대해 위의 마지막 클래스를로드 할 때 다음 예외가 발생합니다.
12/28/2017-11:21:47.070 - localhost-startStop-1 - ERROR [org.springframework.web.context.ContextLoader : Line 227]: Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [beans.xml]; nested exception is org.springframework.beans.FatalBeanException: Class [org.springframework.batch.core.configuration.xml.CoreNamespaceHandler] for namespace [http://www.springframework.org/schema/batch] does not implement the [org.springframework.beans.factory.xml.NamespaceHandler] interface
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
나는 위의 모든 클래스의 소스로보고 그들 모두가 확장 발견 나는 클래스 패스에 항아리를 확인하고있다
org.springframework.beans.factory.xml.NamespaceHandler
차례로 구현
org.springframework.beans.factory.xml.NamespaceHandlerSupport
위의 클래스와 인터페이스를 각각의 예상 된 스프링 jar 파일에 포함하여 잘 보입니다.
어떻게 해결할 수 있습니까?
비슷한 질문이 여기에 있으며 나는 거기에 주어진 것을 시도했다.
Unexpected exception parsing XML document from class path resource [config/FaceBookSimulator.xml];
및
내가 -verbose와 Tomcat을 다시 시작
업데이트 : 모든 클래스를 인쇄 할 수준의 옵션 형태 중 jar 파일을로드.
http://www.springframework.org/schema/batch=org.springframework.batch.core.configuration.xml.CoreNamespaceHandler
DefaultNamespaceHandlerResolver은 (NamespaceHandler가를 구현) NamespaceHandlerSupport를 확장하지 않습니다
12/28/2017-15:01:18.251 - localhost-startStop-1 - DEBUG [org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver : Line 156]: Loaded NamespaceHandler mappings:{
http://www.springframework.org/schema/task=org.springframework.scheduling.config.TaskNamespaceHandler,
http://www.springframework.org/schema/p=org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler,
http://cxf.apache.org/transports/http-jetty/configuration=org.apache.cxf.transport.http_jetty.spring.NamespaceHandler,
http://www.w3.org/2006/07/ws-policy=org.apache.cxf.ws.policy.spring.PolicyNamespaceHandler,
http://www.springframework.org/schema/lang=org.springframework.scripting.config.LangNamespaceHandler,
http://www.springframework.org/schema/util=org.springframework.beans.factory.xml.UtilNamespaceHandler,
http://cxf.apache.org/jaxws=org.apache.cxf.jaxws.spring.NamespaceHandler,
http://cxf.apache.org/policy=org.apache.cxf.ws.policy.spring.NamespaceHandler,
http://www.springframework.org/schema/jee=org.springframework.ejb.config.JeeNamespaceHandler,
http://cxf.apache.org/transports/jms=org.apache.cxf.transport.jms.spring.NamespaceHandler,
http://cxf.apache.org/transports/http/configuration=org.apache.cxf.transport.http.spring.NamespaceHandler,
http://www.springframework.org/schema/tx=org.springframework.transaction.config.TxNamespaceHandler,
http://cxf.apache.org/bindings/object=org.apache.cxf.binding.object.spring.NamespaceHandler,
http://cxf.apache.org/ws/addressing=org.apache.cxf.ws.addressing.spring.NamespaceHandler,
http://cxf.apache.org/clustering=org.apache.cxf.clustering.spring.NamespaceHandler,
http://cxf.apache.org/simple=org.apache.cxf.frontend.spring.NamespaceHandler,
http://www.springframework.org/schema/aop=org.springframework.aop.config.AopNamespaceHandler,
http://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHandler,
http://cxf.apache.org/core=org.apache.cxf.bus.spring.NamespaceHandler,
http://cxf.apache.org/jaxrs=org.apache.cxf.jaxrs.spring.NamespaceHandler,
http://cxf.apache.org/binding/coloc=org.apache.cxf.binding.coloc.spring.NamespaceHandler,
http://schemas.xmlsoap.org/ws/2004/09/policy=org.apache.cxf.ws.policy.spring.PolicyNamespaceHandler,
http://www.springframework.org/schema/jms=org.springframework.jms.config.JmsNamespaceHandler,
http://www.springframework.org/schema/batch=org.springframework.batch.core.configuration.xml.CoreNamespaceHandler,
http://www.w3.org/ns/ws-policy=org.apache.cxf.ws.policy.spring.PolicyNamespaceHandler,
http://cxf.apache.org/ws/rm/manager=org.apache.cxf.ws.rm.spring.NamespaceHandler,
http://cxf.apache.org/bindings/soap=org.apache.cxf.binding.soap.spring.NamespaceHandler
}
클래스
org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver
처리입니다 : 그리고 난 다음 발견했다.
발견 한 것이 맞으면 어떻게 해결할 수 있습니까?
대부분 클래스 로더 계층 구조 문제가 있습니다. 실패한 클래스가 인터페이스를로드 한 클래스 로더와 다른 클래스 로더에 의해로드되고 있습니다. –
짐, 업데이트를 추가했습니다. 한번보세요. – Harsha