3

我在 Spring 中弄湿了我的双手,并将 Eclipse 与 Spring 一起使用。我用 eclipse 编写了一个非常简单的 Spring 应用程序来在 bean 中注入一个属性。但是,当我运行我的应用程序时,Spring 抛出异常,似乎 Spring 无法找到 Spring 配置文件。下面是堆栈跟踪——

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 配置文件的路径。但没有任何效果。任何想法将不胜感激。

4

5 回答 5

8

试试这个

ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:Beans.xml");

当然,您Beans.xml必须在类路径中。

更新或者也许

ApplicationContext context = new ClassPathXmlApplicationContext("file:src/main/Beans.xml");
于 2012-10-12T12:48:33.897 回答
1

Beans.xml 应该在类路径中。您不能为 ClassPathXmlApplicationContext 提供 xml 文件的完整物理路径。请检查 Beans.xml 是否存在于 Eclipse 的构建路径中。

于 2012-10-12T12:47:59.547 回答
0

当您为 Beans.xml 示例使用完整文件路径时,请使用

ApplicationContext context = new GenericXmlApplicationContext("C:/Users/devshankhasharm/workspace/FinalPowerShell/src/src/main/Beans.xml");

但不建议这样做。为此,请使用 ClassPathXmlApplicationContext。

然后将 Beans.xml 移动到类路径中。最简单的方法是如果不使用 Maven 则将其移动到 java 源的根目录,如果使用 Maven,则将其移动到 src/main/resources

于 2012-10-12T12:59:01.817 回答
0

如果不是很麻烦,请尝试使用Spring Tool Suite。它是一个基于 Eclipse 的 Spring 友好 IDE,因此您不必依赖 spring/maven 插件配置。您所要做的就是创建一个 Spring 项目而不是 Java 项目,剩下的所有设置都将为您处理。

于 2012-10-12T13:04:08.827 回答
0

如果您使用的是 Spring Tool Suite (STS),则可能是在您创建 Maven 项目时,src/main/resources 目录配置为“Excluded: . ”。换句话说,STS 将您的 src/main/resources 目录设置为默认将其所有内容排除在输出之外。

如何修复它:

  1. 项目属性 (Alt+Enter) -> Java 构建路径 -> 源
  2. 在 src/main/resources 上,您可能会看到“Excluded: .
  3. 选择此项并单击编辑...
  4. 删除. 排除模式
  5. 单击确定。瞧!
于 2013-10-11T16:23:28.807 回答