2013-12-20 52 views
0

我想要完成的是在一個jar和兩個war之間共享Spring上下文。他們都被包裝在耳邊。EAR中的Spring共享上下文

這裏是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> 

主applicationContext.xml中含有豆我想之間兩戰的分享。

這裏是一個戰爭中的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的日誌,我可以清楚地看到,從主applicationContext.xml中所有的bean被實例化:

[org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loaded 265 bean definitions from location pattern [/META-INF/spring/main-applicationContext.xml] 

而且在一個戰爭的我有一個包含豆類局部的,尤其是戰爭本地Spring上下文。這些豆也被正確地實例化了:

[org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loaded 55 bean definitions from location pattern [/WEB-INF/applicationContext.xml] 

這些bean被正確地注入位於jar中的bean中。但是沒有注入位於前面提到的Web應用程序的本地bean中的Struts動作和bean(在/WEB-INF/applicationContext.xml中定義)。

我期望beanRefContext.xml是本地Web上下文的父上下文。

我在哪裏錯了?

非常感謝您的幫助。

+0

這可能會幫助你http://stackoverflow.com/questions/16162877/spring-mvc-sharing-context-within-ear – constantlearner

+0

constantlearner,我看過那篇文章。我已經有過瘦小的戰爭,所以我不認爲這是同一個問題。 – Damian

+0

調試時,我注意到web上下文已經正確設置了父上下文:Root WebApplicationContext:啓動日期[Fri Dec Dec 20 11:22:45 CET 2013]; parent:ApplicationContext'mainApplicationContext' – Damian

回答

0

問題解決。 Web上下文已丟失

<context:annotation-config/> 

註釋。