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

找不到context.xml文件

向锦
2023-03-14

在spring Java框架中,我使用context.xml文件创建bean,然后用applicationcontext=new ClassPathXmlApplicationContext(“context.xml”);加载它。

我的程序抛出异常java.io.FileNotFoundException:类路径资源[context.xml]无法打开,因为它不存在

文件存在。我使用Gradle进行依赖关系管理,并且我的src文件夹(文件所在的位置)在intellij中标记为resource。我知道由于某种原因,即使我的src文件夹应该包含在classpath变量中,但gradle run任务只是不能从这里抓取它。

当我使用new FileSystemXmlApplicationContext(“context.xml”);时,所有的工作都很好,但我确实需要使用“classpath”来分配。

英语不是我的母语。

这是我的“主”课:

public class Main {
    public static void main(String[] args) {
        ApplicationContext context = new FileSystemXmlApplicationContext("context.xml");
    }
}

这是我的beans from context.xml文件

<bean id="t1000" class="by.zti.main.impl.T1000">
    <constructor-arg ref="sonyHead"/>
    <constructor-arg ref="toshibaLeg"/>
</bean>

<bean id="sonyHead" class="by.zti.main.impl.SonyHead"/>
<bean id="sonyLeg" class="by.zti.main.impl.SonyLeg"/>
<bean id="toshibaHead" class="by.zti.main.impl.ToshibaHead"/>
<bean id="toshibaLeg" class="by.zti.main.impl.ToshibaLeg"/>

这是我的build.gradle文件

group 'zti.spring.test'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'idea'

sourceCompatibility = 1.8
targetCompatibility = 1.8

mainClassName = 'by.zti.main.Main'

repositories {
    mavenCentral()
}

jar {
    baseName = 'gs-gradle'
    version = '0.1.0'
}

dependencies {
    compile 'org.springframework:spring-context:4.3.6.RELEASE'
    compile fileTree(dir:'src', includes:  ['/*.xml,/*.properties'])
}

异常文本

    Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [context.xml]; nested exception is java.io.FileNotFoundException: class path resource [context.xml] cannot be opened because it does not exist
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252)
    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:129)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:613)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:514)
    at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:83)
    at by.zti.main.Main.main(Main.java:12)
Caused by: java.io.FileNotFoundException: class path resource [context.xml] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)
    ... 13 more

这是我的项目中的文件树

类路径的内容

/C:/Users/Cvazer/IdeaProjects/spring-test/build/classes/main/
/C:/Users/Cvazer/IdeaProjects/spring-test/build/resources/main
/C:/Users/Cvazer/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/4.3.6.RELEASE/5f3041020113e3202a7ae9defe36e7b5d2fb87eb/spring-context-4.3.6.RELEASE.jar
/C:/Users/Cvazer/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/4.3.6.RELEASE/d70b2393d380cd468d9a14969efaf9022c67c0/spring-aop-4.3.6.RELEASE.jar
/C:/Users/Cvazer/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/4.3.6.RELEASE/1585715ed598b76a23dac931c27aa039b189eafb/spring-beans-4.3.6.RELEASE.jar
/C:/Users/Cvazer/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/4.3.6.RELEASE/690da099c3c2d2536210f0fd06ff3f336de43ad9/spring-core-4.3.6.RELEASE.jar
/C:/Users/Cvazer/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/4.3.6.RELEASE/13b53568cfd7b308e70efcbac6cdd0c5d597ba1/spring-expression-4.3.6.RELEASE.jar
/C:/Users/Cvazer/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/4bfc12adfe4842bf07b657f0369c4cb522955686/commons-logging-1.2.jar

共有2个答案

罗新
2023-03-14

您应该附加“file:”,即您的url应该类似于“file:src/main/resources/filename.xml”

卜高超
2023-03-14

我认为您应该将文件放在src/main/resources/中,或者指定另一个路径classpathXmlApplicationContext(“src/main/resources/blablabla/context.xml”)

 类似资料:
  • 我对mongoDB-context.xml的定义如下 然而,我得到一个错误如下:

  • 在Spring 3发行版中,有一个项目文件夹被打包在发行版中。这个项目文件夹有可以使用的示例文件。但是,当我从这里下载Spring 4发行版时,它没有附带项目文件夹,我无法找到示例。我在哪里可以找到示例文件。

  • 问题内容: 我最近一直在开发一个程序,该程序可以从Java程序编译并运行C ++程序,我已经使一切基本正常(或至少据我所知),但是后来我注意到有些东西被打印到错误流中: 如您所见,如果我通过SSH而不是Java代码进行操作,它会起作用吗? Java代码: 感谢您的任何帮助,它已得到批准! 问题答案: 告诉你问题所在。 您的一级引号过多,因此您正在寻找而不是。 该的Runtime.exec文档说:

  • PhpStorm 2021.1.1 Mac M1 11.3 当我尝试使用或查找文件时,PhpStorm未能找到该文件。似乎正在尝试从目录,而不是在项目目录中搜索。 我试图< code >文件|无效缓存,运气不好。有人能帮忙吗?

  • 问题内容: 我在当前工作目录上有文件,但是javac报告: 我正在研究ubuntu。 问题答案: 从上面的评论看来,您尝试过: 在您的Ubuntu系统上。该分离器是在UNIX系统上的Windows。 Ubuntu考虑了直到的命令,因此给出了消息。 应该编译好。