2012-03-02 11 views
5

Ho un progetto MVC primavera impostato in questo modo:Primavera non può vedere i fagioli tra fagioli servlet al contesto e contextConfigLocation

<servlet> 
<servlet-name>appServlet</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
<init-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/spring-contexts/servlet-context.xml</param-value> 
</init-param> 
<load-on-startup>1</load-on-startup> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/spring-contexts/configuration-context.xml</param-value> 
</context-param> 

Sembra se faccio un fagiolo in configurazione -context.xml e fa riferimento a un bean in servlet-context.xml che non riesce a trovarlo. Sono creati come due diversi contesti? Perché questo succede/funziona in generale?

risposta

6

Sì, ci sono due contesti sovrapposti uno sull'altro (contesto genitore e figlio).

I bean dal DispatcherServlet (servlet-context.xml) possono accedere ai bean da ContextLoaderListener (configuration-context.xml), ma non viceversa.

Quindi inserire le informazioni di base nel configuration-context.xml e nel Web una volta in servlet-context.xml.

@see anche questa domanda Stack Overflow: ContextLoaderListener or not?

+0

potrebbe dirmi il motivo per cui non riesco a raggiungere, dal mio web servlet, il txManager definito applicationContext? – vault

Problemi correlati