我正在尝试用java学习Spring。当我运行第一个程序时,我陷入了困境。
我正在尝试调用 draw
Triangle 类的方法。
但我看到很多错误。
在 DrawingApp.java
Eclipse 类显示一些警告 - ( The type XmlBeanFactory is deprecated
)。
我将提供我的实现以及下面的错误。
三角形.java
package org.hemant.spring;
public class Triangle {
public void draw(){
System.out.println("Triangle drawn");
}
}
DrawingApp.java
package org.hemant.spring;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
public class DrawingApp {
/**
* @param args
*/
public static void main(String[] args) {
BeanFactory factory = new XmlBeanFactory(new FileSystemResource("spring.xml"));
Triangle triangle = (Triangle)factory.getBean("Triangle.class");
triangle.draw();
}
}
spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bean PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-bean-2.0.dtd">
<bean>
<bean id="triangle" class="org.hemant.spring.Triangle"/>
</bean>
错误
Apr 16, 2016 12:33:45 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from file [C:\Users\hemant001\workspace_mars_eclipse\spring tutorial\spring.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [C:\Users\hemant001\workspace_mars_eclipse\spring tutorial\spring.xml]; nested exception is java.io.FileNotFoundException: http://www.springframework.org/dtd/spring-bean-2.0.dtd
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefiniti ons(XmlBeanDefinitionReader.java:408)
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.xml.XmlBeanFactory.<init> (XmlBeanFactory.java:78)
at org.springframework.beans.factory.xml.XmlBeanFactory.<init> (XmlBeanFactory.java:66)
at org.hemant.spring.DrawingApp.main(DrawingApp.java:17)
Caused by: java.io.FileNotFoundException: http://www.springframework.org/dtd/spring-bean-2.0.dtd
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(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.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:388)
... 5 more
最佳答案
您应该将 http://www.springframework.org/dtd/spring-bean-2.0.dtd
替换为 http://www.springframework.org/dtd/spring- beans-2.0.dtd
(注意 spring.xml
中的 bean,而不是 bean)。
关于java - Spring框架bean错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36661210/