2017-08-03 56 views
0

我正在尝试使用SPRING调用三角形bean中的方法draw()的活动。但是,当我尝试访问spring.xml文件时遇到了一个错误。如何解决SPRING中由FileNotFoundException引起的BeanDefinitionStoreException?

的错误是:

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [spring.xml]; nested exception is java.io.FileNotFoundException: class path resource [spring.xml] cannot be opened because it does not exist 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at org.spring.application.SpringApplication.main(SpringApplication.java:23) 
Caused by: java.io.FileNotFoundException: class path resource [spring.xml] cannot be opened because it does not exist 
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328) 
    ... 13 more 

这里是主这是SpringApplication.java:

package org.spring.application; 

import org.springframework.context.support.AbstractApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

public class SpringApplication 
{ 

    public static void main(String[] args) 
    { 
     AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); 
     Triangle triangle = (Triangle) context.getBean("Triangle"); 
     triangle.draw(); 
    } 

} 

这里是在spring.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="Triangle" class="org.spring.application.Triangle"/> 
</beans> 

这里是项目文件夹: Project Folder

我正在使用NetBeans IDE。我还包括Spring库和组件日志记录。 有人可以帮助我,并指出如果我做错了什么。谢谢。

回答

0

您需要添加软件包。 new ClassPathXmlApplicationContext("spring.xml");应该是new ClassPathXmlApplicationContext("org/spring/application/spring.xml");

+0

嗨,谢谢!有效。 –

0

您应该将spring.xml放置在资源文件夹中。 使用以下结构: enter image description here

相关问题