2014-06-15 79 views
0

我有一個Spring項目,我想要在Spring bean XML文件中定義一個特定的Spring bean。我的Spring bean XML文件位於/WEB-INF/spring/root-context.xml無法獲得Spring bean

這是我在服務類代碼:

ApplicationContext context = new ClassPathXmlApplicationContext("/WEB-INF/spring/root-context.xml"); 

這裏是我的錯誤,當我編譯:

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 

回答

0

大概WEB-INF是不是你的類路徑中。我建議移動類路徑中的xml文件(例如src/main/resources/spring/root-context.xml)。然後,你可以訪問它:ApplicationContext context = new ClassPathXmlApplicationContext("/spring/root-context.xml");如果你在裏面的Web應用程序,Spring MVC的查找日上下文WEB-INF/<the name of the dispatcher servlet>-servlet.xml

如果你想訪問使用

GenericApplicationContext ctx = new GenericApplicationContext(); 
    XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx); 
    xmlReader.loadBeanDefinitions(new FileSystemResource(path)); 
從WEB-INF的背景下,你可以加載它

更好的方法是使用WebApplicationContextUtils或實現ApplicationContextAware。不知道你的用例是什麼......

+0

是的我知道,但我想要的是,我的XML文件,在web-inf可以從MVC層和簡單的服務層類訪問使用ClassPathXmlApplicationContext。有沒有辦法做到這一點 ? –

+0

@Abdessamad BOUTGAYOUT我編輯了答案。 –