日期:2014-05-19  浏览次数:20700 次

急~~~~Spring一个新手遇到的问题
我是一个刚开始学spring的新手,刚写了一段程序如下:
Hello.java如下:
package spring.chapter1;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

public class Hello {
private String msg;

public void setMsg(String msg){
this.msg = msg;
}

public void sayHello(){
System.out.println(msg);
}

/**
* @param args
*/

public static void main(String[] args){
Resource res = new ClassPathResource("spring/chapter1/bean.xml");
BeanFactory factory = new XmlBeanFactory(res);

Hello hello = (Hello)factory.getBean("helloBean");
hello.sayHello();
}
}

bean.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="helloBean" class="spring.chapter1.Hello">
<property name="msg" value="这是一个简单的spring实例!"/>
</bean>
</beans>

却抛出了如下的异常:
2011-1-19 0:04:25 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [spring/chapter1/bean.xml]
Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 2 in XML document from class path resource [spring/chapter1/bean.xml] is invalid; nested exception is org.xml.sax.SAXParseException: White spaces are required after keyword PUBLIC in DOCTYPE decl.
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.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:73)
at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:61)
at spring.chapter1.Hello.main(Hello.java:24)
Caused by: org.xml.sax.SAXParseException: White spaces are required after keyword PUBLIC in DOCTYPE decl.
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.XMLScanner.scanExternalID(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.scanDoctypeDecl(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentSc