【问题标题】:I can't run my first Spring application, Hello World? I have added all the jars我无法运行我的第一个 Spring 应用程序 Hello World?我已经添加了所有的罐子
【发布时间】:2013-10-24 05:40:18
【问题描述】:

我在尝试运行我的第一个在控制台上显示 Hello world 的 Spring 应用程序时遇到问题。我收到此错误。

Oct 16, 2013 10:24:37 AM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5d764be1: startup date [Wed Oct 16 10:24:37 EAT 2013]; root of context hierarchy
Oct 16, 2013 10:24:37 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
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)
    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:131)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:527)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:441)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at come.tutorialspoint.MainApp.main(MainApp.java:10)
Caused by: java.io.FileNotFoundException: class path resource [Beans.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

这是 Beans.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-
3.0.xsd">
<bean id="helloWorld" class="com.tutorialspoint.HelloWorld">
<property name="message" value="Hello World!"/>
 </bean>
</beans>

我通过右键单击并添加 android .xml 文件在确切的包中创建了 Beans.xml 文件。 这是java类:

package come.tutorialspoint;

public class HelloWorld {
   private String message;

   public void setMessage(String message){
      this.message  = message;
   }

   public void getMessage(){
      System.out.println("Your Message : " + message);
   }
}

这是主类:

public class MainApp {
public static void main(String[] args) {
    ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
    HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
    obj.getMessage();
    }
}

【问题讨论】:

  • 它找不到 Beans.xml ......那么你有那个文件吗?它在哪里?
  • 请在此处附上启动应用程序上下文的代码和您的项目结构(文件夹和每个文件所在的位置)
  • @JonSkeet 我的包中有 Beans.xml 文件。我将发布确切的代码。
  • @Avi 我已附上代码
  • 试试看this stackoverflow topic。也许会有用。

标签: java xml spring spring-mvc jar


【解决方案1】:

将 Bean.xml 保存在 Java 文件的同一个包中,而不是使用:

ClassPathXmlApplicationContext("Beans.xml")

用途:

ClassPathXmlApplicationContext("come/tutorialspoint/Beans.xml");

【讨论】:

    【解决方案2】:

    根据您对该问题的最后一个问题,您的 Beans.xml 位于错误的位置。选项:

    • 将 Beans.xml 移动到“src/main/resources/Beans.xml”

    • 将 Beans.xml 移动到“src/main/java/Beans.xml”

    • ClassPathXmlApplicationContext("Beans.xml")更改为ClassPathXmlApplicationContext("come/tutorialspoint/Beans.xml")

    第一个选项是 Java/Maven 约定的首选选项。

    您的错误是 ClassPathXmlApplicationContext 需要一个类路径位置,其中包括任何包信息。您的 Beans.xml 当前位于“come.tutorialspoint”包中;

    更多信息:

    【讨论】:

    • 刚刚注意到我回答了一个距上次活动已有近八个月大的问题。不知道为什么它会出现在最近的问题提要中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 2020-08-19
    相关资源
    最近更新 更多