【问题标题】:BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext]BeanDefinitionStoreException:IOException 从类路径资源解析 XML 文档 [applicationContext]
【发布时间】:2019-03-03 08:49:02
【问题描述】:

我正在尝试创建我的第一个 Spring 应用程序。它显示以下错误:

log4j:WARN No appenders could be found for logger (org.springframework.beans.factory.xml.XmlBeanDefinitionReader).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext] 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.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:73)
    at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:61)
    at com.spring1.FirstSpring1.main(FirstSpring1.java:20)
Caused by: java.io.FileNotFoundException: class path resource [applicationContext] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:141)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)
    ... 4 more

GetterSetter.java

package com.spring1;

private String name;

public String getName()
{
    return name;
}

public void setName(String name)
{
    this.name=name;
}

public void displayInfo()
{
    System.out.println("hello "+name);
}

FirstSpring1.java

package com.spring1;

public static void main(String[] args)
{
    GetterSetter gt=new GetterSetter();
    gt.setName("Google");
    gt.displayInfo();

    Resource resource = new ClassPathResource("applicationContext");
    BeanFactory factory = new XmlBeanFactory(resource);
    GetterSetter gt1 = (GetterSetter)factory.getBean("name1");
    gt1.displayInfo();
}

XML 文件位于src 文件夹中。

【问题讨论】:

  • 我编辑了标题以反映实际的异常(原标题中报告的异常只是 LOG4J 抱怨自己)。
  • 您应该使用applicationContext.xml 而不是applicationContext。这就是异常所说的:FileNotFoundException: class path resource [applicationContext] cannot be opened because it does not exist.
  • 它正在工作,谢谢@MichalZiober 我用 applicationContext.xml 替换了 applicationContext
  • 太好了,我已将我的评论添加为答案,因此您可以接受。

标签: java xml spring


【解决方案1】:

代替:

Resource resource = new ClassPathResource("applicationContext");

用途:

Resource resource = new ClassPathResource("applicationContext.xml");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-21
    • 2016-12-07
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    相关资源
    最近更新 更多