DefaultAnnotationHandlerMapping über ContextLoaderListener anstelle von DispatcherServlet in Spring 3

7

Wenn ich DispatcherServlet verwende, erhalte ich eine java.lang.IllegalStateException: Kein WebApplicationContext gefunden: kein ContextLoaderListener registriert? Fehler, wenn ich einen DelegatingFilterProxy -Filter verwende. Daher habe ich das DispatcherServlet entfernt und verwende stattdessen stattdessen einen ContextLoaderListener , und meine Spring-Anwendung wird ordnungsgemäß geladen. Allerdings habe ich ein Problem mit einer SEHR wichtigen Bohne:

%Vor%

Diese Bean funktioniert nicht mehr, keiner meiner @ Controller ist mehr URL-gemappt. Wenn ich zu DispatcherServlet zurückwechsle, kein Problem (außer dass mein Filter wieder unbrauchbar ist). Wie kann ich dieses Bean korrekt aus einem ContextLoaderListener laden?

Prost

Nik

    
niklassaers 23.09.2009, 09:13
quelle

2 Antworten

22

Sie benötigen sowohl ContextLoaderListener als auch DispatcherServlet - die Fehlermeldung hat Ihnen nicht gesagt, dass Sie das Servlet entfernen sollen.

Um zu verdeutlichen, was Spring hier macht, erstellt DispatcherServlet seine eigene ApplicationContext (normalerweise mit xxx-servlet.xml ), aber alle Spring Filter, die Sie in web.xml konfigurieren, haben keinen Zugriff auf die% co_de des Servlets %.

Der ApplicationContext erstellt einen zweiten ContextLoaderListener (der gesamten Webanwendung zugeordnet) und verbindet sich mit dem ApplicationContext des Servlets, sodass Filter und Servlets über Spring kommunizieren können.

    
skaffman 23.09.2009, 09:15
quelle
1

Die web.xml der Spring MVC-Basisanwendung hat keinen ContextLoaderListener? Siehe Ссылка .

Grund, den ich stelle, ist, weil ich den folgenden Fehler in meiner Anwendung erhalte:

FEHLER [[Spring MVC Dispatcher Servlet]] Servlet.service () für Servlet Spring MVC Dispatcher Servlet hat eine Ausnahme ausgelöst java.lang.IllegalStateException: Kein WebApplicationContext gefunden: Kein ContextLoaderListener registriert?

und ich habe keinen ContextLoaderListener (der wahrscheinlich das Problem verursacht).

Irgendwelche Gedanken, warum die MVC basic App funktioniert?

    
Nes 05.05.2010 21:32
quelle

Tags und Links