我想要完成的是在一个jar和两个war之间共享Spring上下文。所有这些都装在耳边。
这是位于jar中的beanRefContext.xml:
<bean id="mainApplicationContext"
class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
<list>
<value>/META-INF/spring/main-applicationContext.xml</value>
</list>
</constructor-arg>
</bean>
main-applicationContext.xml包含我想在两个war之间共享的bean。
这是一场战争中的web.xml:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listenerclass>
</listener>
<context-param>
<param-name>locatorFactorySelector</param-name>
<param-value>/META-INF/spring/beanRefContext.xml</param-value>
</context-param>
<context-param>
<param-name>parentContextKey</param-name>
<param-value>mainApplicationContext</param-value>
</context-param>
在另一场战争中也是如此。
从Jboss日志中我可以清楚地看到main-applicationContext.xml中的所有bean都被实例化了:
[org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loaded 265 bean definitions from location pattern [/META-INF/spring/main-applicationContext.xml]
此外,在其中一场战争中,我有当地的春季背景,其中包含特定战争的本地豆类。那些bean也可以正确实例化:
[org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loaded 55 bean definitions from location pattern [/WEB-INF/applicationContext.xml]
将豆子正确注入罐子里的豆子里。但是,没有注入位于上面提到的Web应用程序本地bean的Struts操作和bean中(在/WEB-INF/applicationContext.xml中定义)。
我期望beanRefContext.xml是本地Web上下文的父上下文。
我哪里错了?
提前感谢您的帮助。
答案 0 :(得分:0)
问题解决了。 Web上下文一直缺失
<context:annotation-config/>
注释
答案 1 :(得分:0)
<context-param>
<param-name>locatorFactorySelector</param-name>
<param-value>classpath*:/META-INF/spring/beanRefContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
can you try the above statements once in your web.xml file ?