当前位置: 首页 > 知识库问答 >
问题:

我正在尝试使用XML运行第一个Spring程序,我发现了以下错误。我是这方面的新手,请指导我

公冶峰
2023-03-14
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DrawingApp {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring.xml");
        Triangle triangle= (Triangle) applicationContext.getBean("triangle");
        triangle.draw();
    }
}

public class Triangle {
    public void draw()
    {
        System.out.println("Triangle Class");
    }
}

这是Java程序。

    <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
    <bean id="triangle" class="Triangle"/>
</beans>

这是XML文件。当我试图运行这个程序时,我得到了以下错误

14:32:12.644[main]调试组织。springframework。上下文支持ClassPathXmlApplicationContext-刷新组织。springframework。上下文支持ClassPathXmlApplicationContext@721e0f4f线程“main”组织中出现异常。springframework。豆。工厂BeanDefinitionStoreException:IOException解析来自类路径资源[Spring.XML]的XML文档;嵌套的例外是java。伊奥。FileNotFoundException:无法打开类路径资源[Spring.xml],因为它在组织中不存在。springframework。豆。工厂xml。XmlBeanDefinitionReader。在org上加载BeanDefinitions(XmlBeanDefinitionReader.java:342)。springframework。豆。工厂xml。XmlBeanDefinitionReader。在org上加载BeanDefinitions(XmlBeanDefinitionReader.java:310)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:188)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:224)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:195)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:257)。springframework。上下文支持AbstractXmlApplicationContext。在org上加载BeanDefinitions(AbstractXmlApplicationContext.java:128)。springframework。上下文支持AbstractXmlApplicationContext。在org上加载BeanDefinitions(AbstractXmlApplicationContext.java:94)。springframework。上下文支持AbstractRefreshableApplicationContext。refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)位于org。springframework。上下文支持AbstractApplicationContext。在org上获取FreshBeanFactory(AbstractApplicationContext.java:671)。springframework。上下文支持AbstractApplicationContext。在org上刷新(AbstractApplicationContext.java:553)。springframework。上下文支持ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:144)网址:org。springframework。上下文支持ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:85)在练习中。DrawingApp。main(DrawingApp.java:9)由:java引起。伊奥。FileNotFoundException:无法打开类路径资源[Spring.xml],因为它在组织中不存在。springframework。果心伊奥。ClassPathResource。getInputStream(ClassPathResource.java:199)位于org。springframework。豆。工厂xml。XmlBeanDefinitionReader。loadBeanDefinitions(XmlBeanDefinitionReader.java:333)。。。还有13个

我还在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
       https://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="triangle" class="Triangle"/>
</beans

然后我也得到同样的错误

指导我完美地完成这个Spring编程。

共有2个答案

伏默
2023-03-14

这是因为您还没有启动Spring容器。您必须调用ClassPathXmlApplicationContext。刷新()以启动它。

另一件事是,您也没有配置XML配置文件的位置。

因此,假设XML配置文件名为config。xml,请更改为以下内容:

ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext();
applicationContext.setConfigLocations("config.xml");
applicationContext.refresh();

或者简单地说:

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("config.xml");

它将在封面下自动调用refresh()

严誉
2023-03-14

您的XML文件位于错误的目录中ClassPathXmlApplicationContext在Java类路径上搜索它。Java类路径的目的是定位可用的编译类文件,但在那里放置运行时配置文件也变得非常常见。

如果您使用Maven来构建您的项目,您可以将您的Spring.xml文件放置到src/main/Resources中。Maven将其内容复制到文件夹中,该文件夹将在执行过程中位于类路径上。

 类似资料:
  • 错误:任务“:app:ProcessDebugResources”执行失败。 com.android.ide.common.Process.processException:org.gradle.Process.internal.exeception:Process“command”c:\users\mohamed sallam\appdata\local\android\sdk\build-to

  • 错误:异常线程"main"org.springframework.beans.factory.BeanDefitionStoreExc0019: IOExc0019解析XML文档从类路径资源[应用程序Context.xml];嵌套异常是java.io.FileNotFoundExc0019:类路径资源[应用程序Context.xml]无法打开,因为它d 代码:

  • 问题是,我正在测试一个方法,但它给我一个404错误,我已经把我的承载令牌在我的请求中,这是合乎逻辑的,因为我需要把头“授权”。当我在《邮差》中提出这个要求时,它给了我很好的结果。我有什么不及格的? monedaServiceTest.java: 输出控制台:

  • 在此输入图像描述c:\users\kiit>flutter doctor doctor summary(要查看所有详细信息,请运行flutter doctor-v):[√]flutter(通道稳定,1.22.6,在Microsoft Windows上[10.0.19041.804]版本,区域设置en-US)[√]Android toolchain-为Android设备开发(Android SDK版

  • 我在jboss中部署的模块与org有依赖关系。springframework:spring orm:4.3.16。释放我没有看到任何重复的依赖项添加到类路径中。根据例外情况,我了解到我的应用程序使用一个版本成功编译,并且在部署期间引用了另一个版本。但我在任何地方都看不到任何重复版本。 有谁能帮我解决这个问题吗?请在下面找到详细的例外情况。 {“WFLYCTL0080:失败的服务”=

  • 正在启动lib\main。调试模式下STK L21上的dart。。。正在运行Gradle任务“assembleDebug”。。。 失败:生成失败,出现异常。 问题:配置根项目“android”时出现问题 无法解析配置“classpath”的所有项目。无法解析com。Android工具。版本:gradle:4.1.0。要求:项目: > 尝试:使用--stacktrac选项运行以获取堆栈跟踪。使用--