Quando uso DispatcherServlet, ottengo un java.lang.IllegalStateException : No WebApplicationContext trovato: no ContextLoaderListener registrato? errore quando utilizzo un filtro DelegatingFilterProxy. Pertanto ho rimosso il DispatcherServlet e ora utilizzo uno ContextLoaderListener e l'applicazione Spring viene caricata correttamente. Tuttavia, ho un problema con un chicco molto importante:DefaultAnnotationHandlerMapping via ContextLoaderListener invece di DispatcherServlet su Spring 3
<context:component-scan base-package="com.mydomain"/>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="openSessionInViewInterceptor" />
</list>
</property>
</bean>
Questo fagiolo non funziona più, nessuno di URL sono il mio @ del controller mappati più. Se torno a utilizzare DispatcherServlet, nessun problema (tranne che il mio filtro è di nuovo inutile). Come posso caricare correttamente questo bean dall'interno di ContextLoaderListener?
Acclamazioni
Nik
Aha! Questo è MOLTO chiarificante. :-) Ma, hai qualche link valido su come posso configurare ContextLoaderListener per immergerlo nel contesto di Servlet o viceversa? Perché quando uso entrambi, crea un'istanza di ogni bean due volte (ad eccezione di DefaultAnnotationHandler e a condizione che abbia impostato contextConfigLocation contest-param sul file di configurazione del servlet. Se creo un file di configurazione separato, devo copiare/incollare i bean per l'autenticazione o l'importazione dei dati e del livello aziendale, rendendo così tutti questi bean due volte Come posso mantenerli una sola volta? – niklassaers
Il contesto app creato da ContextLoaderListener è il contesto padre del contesto app del servlet. Ciò significa che i bean nel L'appcontext di ContextLoaderListener è automaticamente visibile ai bean nel appcontext del servlet (ma non viceversa), quindi tutti i file condivisi devono essere dichiarati nel genitore. – skaffman
Grazie mille, non ne ero consapevole. Ho risolto la mia configurazione di conseguenza, e ora tutto funziona brillantemente. :-) Grazie mille, e grazie per tutte le altre volte che mi hai aiutato qui. Ho sicuramente bisogno di comprarti un paio di birre qualche volta :-) – niklassaers