我在Spring中弄湿手,并使用Eclipse和Spring。我用eclipse编写了一个非常简单的Spring应用程序来在bean中注入一个属性。但是,当我运行我的应用程序时,Spring正在抛出异常,似乎Spring无法找到Spring配置文件。下面是stacktrace -
INFO: Loading XML bean definitions from class path resource [Beans.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [Beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [Beans.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)
我尝试过以下操作 - 在ClassPathXmlApplicationContext方法中提供完整路径,如 -
ApplicationContext context = new ClassPathXmlApplicationContext("C:/Users/devshankhasharm/workspace/FinalPowerShell/src/src/main/Beans.xml");
我还更新了Windows中的ClassPath变量,为我的spring配置文件添加了路径。但没有任何效果。任何想法都将受到高度赞赏。
答案 0 :(得分:8)
试试这个
ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:Beans.xml");
当然,您的Beans.xml
必须在类路径中。
更新或者
ApplicationContext context = new ClassPathXmlApplicationContext("file:src/main/Beans.xml");
答案 1 :(得分:1)
Beans.xml应该在classpath中。您无法为ClassPathXmlApplicationContext提供xml文件的完整物理路径。请检查eclipse的构建路径中是否存在Beans.xml。
答案 2 :(得分:0)
当您使用Beans.xml示例的完整文件路径时,请使用
ApplicationContext context = new GenericXmlApplicationContext("C:/Users/devshankhasharm/workspace/FinalPowerShell/src/src/main/Beans.xml");
但不建议这样做。请改用ClassPathXmlApplicationContext。
然后将Beans.xml移动到类路径中。最简单的方法是,如果不使用Maven或src / main / resources,如果使用Maven,则将其移动到java源代码的根目录
答案 3 :(得分:0)
如果不是太麻烦,请尝试使用Spring Tool Suite。它是一个基于Eclipse的Spring友好型IDE,因此您不必依赖spring / maven插件配置。您所要做的就是创建一个Spring项目而不是Java项目,所有设置都将为您处理。
答案 4 :(得分:0)
如果您使用的是Spring Tool Suite(STS),则可能会在创建Maven项目时将src / main / resources目录配置为“Excluded:。”。换句话说,STS设置你的src / main / resources目录,默认情况下从输出中排除所有内容。
如何修复它: