IOException синтаксический анализ XML-документа из ресурса пути к классу
Ok в настоящее время я пытаюсь mavenise проект. Однако мой проект не может найти xml-файл, содержащий некоторые компоненты. combined2.в XML
Я определил его как:
public RepeatingGrpPoC() {
appContext = new ClassPathXmlApplicationContext(
new String[] { "src/main/java/resources/combined2.xml",});
c = 0;
}
однако по неизвестной мне причине я постоянно получаю ошибку.
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [src/main/java/resources/combined2.xml]; nested exception is java.io.FileNotFoundException: class path resource [src/main/java/resources/combined2.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:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:465)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:395)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
at metadataPoC.RepeatingGrpPoC.<init>(RepeatingGrpPoC.java:34)
at metadataPoC.Main.main(Main.java:22)
вызвано: java.Ио.FileNotFoundException: ресурс пути класса [src/main/java/resources / combined2.xml] не удается открыть, так как он не существует на орг.springframework.ядро.Ио.ClassPathResource.getInputStream (ClassPathResource.java: 141) в орг.springframework.зернышки.фабрика.XML.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.java: 328) ... Более 14
где еще программа будет искать этот файл, так как я дал ему относительный путь?
4 ответов
он пытается загрузить этот файл из пути к классам и не может его найти. Попробуйте указать просто "combined2.xml"
вместо "src/main/java/resources/combined2.xml"
и убедитесь, что src/main/java/resources находится на вашем пути к классам.
кстати, в Maven стандартным каталогом для ресурсов является src/main/resources
, поэтому я предлагаю вам поместить этот файл туда.
Maven, имеет стандартный каталог для ресурсов, который является src/main / resources, поэтому, если вы сохраните свой файл здесь, он примет его. и в пути просто дайте имя файла.
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("application-context.xml");
У меня была та же проблема, что и у меня
попробуй такое
appContext = new ClassPathXmlApplicationContext(
new String[] { "/**/combined2.xml", "/**/xxx.xml"});
You can use the relative path of the xml file.
relative path: path relative to your package where the XML file is located.
E.g.
Assume,
package = beanfactory,
xml file name = application-context.xml,
and xml file in under this package.
then provide the path as "/beanfactory/application-context.xml"
ApplicationContext factory=new
ClassPathXmlApplicationContext("/beanfactory/application-context.xml");
This works without errors.