【发布时间】:2014-02-14 20:27:17
【问题描述】:
我正在将 grails 应用程序转换为 spring。如何从 spring 'WEB-INF/applicationContext.xml' 获取 groovy 或 java 类中的 spring bean。
这是我用于 grails 应用程序的代码
queueConnectionFactory = (QueueConnectionFactory)Holders.applicationContext.getBean("jmsConnectionFactory");
我试过了
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
queueConnectionFactory usa = (QueueConnectionFactory) ctx.getBean("jmsConnectionFactory");
但它不起作用,我收到一个错误
java.io.FileNotFoundException: 类路径资源 [applicationContext.xml] 无法打开,因为它不存在 在 org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
请帮我解决这个问题。谢谢
【问题讨论】:
-
您的
applicationContext.xml文件是否位于类路径中?如果它在WEB-INF的根中,我不相信它是。尝试将其移动到源文件夹的根目录。 -
它在'main/webapps/WEB-INF/applicationContext.xml'目录下。所以它应该可用吧?
-
我一定会尝试的。顺便说一句,我用来获取 bean 的代码是否正确?感谢您的回复。
-
抓取 bean 的代码对我来说看起来是正确的,但是您可能想要使用该类。异常明显是找不到配置文件。