Lorsque j'utilise DispatcherServlet, je reçois un java.lang.IllegalStateException: Aucun WebApplicationContext trouvé: pas ContextLoaderListener enregistré? Erreur lorsque j'utilise un filtre DelegatingFilterProxy. Par conséquent, j'ai supprimé le DispatcherServlet et maintenant j'utilise un ContextLoaderListener à la place, et mon application Spring se charge bien. Cependant, j'ai un problème avec un haricot très important:DefaultAnnotationHandlerMapping via ContextLoaderListener au lieu de DispatcherServlet 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>
Ce haricot ne fonctionne plus, aucun de mes @ URL de contrôleur de cartographiés sont-plus. Si je repasse à utiliser DispatcherServlet, pas de problème (sauf que mon filtre est à nouveau inutile). Comment puis-je charger ce bean correctement depuis un ContextLoaderListener?
Vive
Nik
Aha! C'est TRÈS clarifiant. :-) Mais, avez-vous de bons liens sur la façon dont je peux configurer le ContextLoaderListener pour qu'il plonge dans le contexte de la Servlet ou inversement? Parce que quand j'utilise les deux, il instancie chaque bean deux fois (excepté le DefaultAnnotationHandler, et à condition d'avoir défini contextConfigLocation de context-param dans le fichier de configuration de servlet.) Si je crée un fichier de configuration séparé, je dois copier/coller les beans – niklassaers
L'appcontext créé par ContextLoaderListener est le contexte parent de l'appcontext de la servlet, ce qui signifie que les beans de l'application doivent être authentifiés ou importés. Le contexte d'application de ContextLoaderListener est automatiquement visible par les beans dans le contexte d'application de la servlet (mais pas dans l'autre sens), de sorte que tous ceux qui sont partagés doivent être déclarés dans le parent. – skaffman
Merci beaucoup, je n'étais pas au courant de cela. J'ai corrigé ma config en conséquence, et maintenant tout fonctionne avec brio. :-) Merci beaucoup, et merci pour toutes les autres fois où vous m'avez aidé ici. Je dois absolument vous acheter quelques bières :-) – niklassaers