2014-10-15 2 views
1

저는 Spring Framework의 샘플 Aspect Oriented Program을 작성하고 있습니다. 내 XML 파일 정보스프링 AOP 중첩 예외는 org.xml.sax.SAXParseException입니다. 프롤로그에서 내용을 허용하지 않습니다.

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" 
"http://www.springframework.org/dtd/spring-beans-2.0.dtd"> 
<beans> 
<bean id="a" class="aopDTD.A"></bean> 
<bean id="b" class="aopDTD.BeforeAdviser"></bean> 
<bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean"> 
<property name="target" ref="a"></property> 
<property name="interceptorNames"> 
<list> 
<value>b</value> 
</list> 
</property> 
</bean> 
</beans> 

나머지 당신은 여전히 ​​여기에 다음 코드의 나머지 부분에서 살펴 봐야 할 경우 모든 코드는 괜찮 내가 여기

Oct 15, 2014 9:49:40 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh 
INFO: Refreshing org[email protected]19a072a6: display name [org[email protected]19a072a6]; startup date [Wed Oct 15 21:49:40 IST 2014]; root of context hierarchy 
Oct 15, 2014 9:49:40 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from class path resource [aopdtd] 
Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 1 in XML document from class path resource [aopdtd] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404) 
    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.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at aopDTD.Test.main(Test.java:9) 
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.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:396) 
    ... 14 more 

콘솔에서 얻는 중 오류 임에 따라 에 그것의 링크

http://www.javatpoint.com/spring-aop-example``

답변

1

XML 파일 만 DTD를 사용하여, 기존 spring2.0 형식입니다. Spring3 이후 xml 스키마를 사용하여 새로운 형식을 사용해야한다. 그러나 왜 당신이 질문에 제공 한 링크의 페이지에서 형식을 유지하지 않았습니까? 코멘트 당

편집 :

2.5 버전은 더 이상 유지 제네릭을 사용하지 않는, 지금은 오히려 구식입니다. Spring framework site에서 일반적으로 사용 가능한 버전은 3.2, 4.0 및 4.1입니다. 그러나 2.5.6을 사용하는 데는 충분한 이유가있을 수 있습니다.

해당 버전의 경우, 당신은 여전히 ​​DTD를 사용할 수 있지만, 크리스 톰슨 상태로, 적어도이 있어야합니다 <?xml version="1.0" encoding="UTF-8"?>

그래서 당신은 할 수 있습니다 :

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" 
    "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> 

<beans> 
... 
</beans> 

또는 n XML 스키마를 -style

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     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"> 
... 
</beans> 
+0

+1 특히 '은 문서에서 제일 먼저해야합니다. –

+0

나는 그것을 사용해 봤지만 사용하지 않았다. 여전히 동일한 오류가 발생합니다 – Rupesh

+0

@user3561495 어떤 버전의 Spring을 사용하고 있습니까? –

관련 문제