im, используя мою первую программу helloworld с использованием STS с использованием maven, это простой пример IOC
public class Soloapp {
String solo;
public Soloapp() {
// TODO Auto-generated constructor stub
}
public String getSolo() {
return solo;
}
public void setSolo(String solo) {
this.solo = solo;
}
}
и класс реализации
package com.solo.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Soloimp {
public static void main(String[] args) {
ApplicationContext ap= new ClassPathXmlApplicationContext("/WEB-INF/spring/root-context.xml");
Soloapp apa= (Soloapp) ap.getBean("solo");
System.out.println(apa.getSolo());
}
}
и получение исключения
L
og4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
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 [WEB-INF/spring/root-context.xml]; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/spring/root-context.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:522)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.solo.spring.Soloimp.main(Soloimp.java:9)
он показывал не могу найти местоположение файла xml, но я указал местоположение, в котором я использовал весенний набор инструментов mvc maven
и структура проекта выглядит так
Вы можете попробовать, что предложили Vaibs в связанном ответе, но для этого вам придется переместить root-context.xml
в src/main/resources
.
Если вы хотите сохранить его на месте, загрузите его так
ConfigurableApplicationContext ap = new ClassPathXmlApplicationContext("file:src/main/webapp/WEB-INF/spring/root-context.xml");
Если я не ошибаюсь, при запуске из STS/Eclipse путь разрешается с вершины проекта. Поэтому попробуйте установить путь к файлу с корня, т.е. Src/main/webapp/WEB-INF....
src/main/resources
иsrc/main/java
являются частью пути к классам, аsrc/main/webapp
- нет.