2011-10-09 16 views
16

Ten plik web.xml w WEB-INFjava.lang.IllegalStateException: Nie znaleziono aplikacji WebApplicationContext: nie zarejestrowano ContextLoaderListener?

<?xml version="1.0" encoding="UTF-8"?> 

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/applicationContext.xml</param-value> 
    </context-param> 

    <filter> 
     <filter-name>LoginFilter</filter-name> 
     <filter-class>glpi.filter.LoginFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>LoginFilter</filter-name> 
     <url-pattern>/index.jsp</url-pattern> 
    </filter-mapping> 

    <servlet> 
     <servlet-name>context</servlet-name> 
     <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

     <servlet> 
     <servlet-name>action</servlet-name> 
     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
     <init-param> 
      <param-name>config</param-name> 
      <param-value>/WEB-INF/struts-config.xml</param-value> 
     </init-param> 
     <init-param> 
      <param-name>debug</param-name> 
      <param-value>2</param-value> 
     </init-param> 
     <init-param> 
      <param-name>detail</param-name> 
      <param-value>2</param-value> 
     </init-param> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.htm</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>action</servlet-name> 
     <url-pattern>*.do</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>/login.jsp</welcome-file> 
    </welcome-file-list> 

</web-app> 
+0

Możliwy duplikat [nr WebApplicationContext znaleziono: no ContextLoaderListener zarejestrowany] (https://stackoverflow.com/questions/8924761/no-webapplicationcontext-found-no-contextloaderlistener-registered) – BalusC

Odpowiedz

20

Chyba brakuje słuchacza ładowarka kontekst (aby odebrać plik (ów) Kontekst wiosna).

Dodaj to do web.xml

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

Można również zapoznać się z początkowej konfiguracji internetowej sekcję @http://static.springsource.org/spring/docs/2.0.x/reference/beans.html

+1

dziękuję, ale po dodaniu moduł nasłuchujący modułu kontekstowego, Moduł: HELPDESKGESTION \ nbproject \ build-impl.xml: 719: nie został wdrożony. – majda88

+3

Trudno to skomentować, nie wiedząc, co się dzieje. Ale jestem pewien, że twoje pytanie tutaj istotne powinno zostać rozwiązane przez powyższy fragment w mojej odpowiedzi. – Saket

12

masz zarówno ContextLoaderServlet i DispatcherServlet ustawiony na załadowanie na starcie = 1. Oznacza to, że jeden z nich może zostać uruchomiony jako pierwszy, a serwer ContextLoaderServlet musi zostać uruchomiony jako pierwszy, ponieważ tworzy to główny składnik WebApplicationContext, którego brakuje w błędzie. Pozostaw więc ładowanie przy starcie ContextLoaderServlet na 1 i zmień wartość DispatcherServlet na 2 lub wyższą.

W rzeczywistości preferowane jest użycie ContextLoaderListener zamiast serwletu, chyba że znajdujesz się na naprawdę starym kontenerze, w którym słuchacz nie działa poprawnie.

+0

Prawdziwa odpowiedź !! +1 – gavenkoa

9

Dodaj następujący kod w pliku web.xml, bcs szuka contex do załadowania, więc musimy zadeklarować go na początku.

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/HelloWeb-servlet.xml</param-value> 
    </context-param> 

    <listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
0

I niedawno natknął się w tej samej sprawie, a ja wiedziałem na pewno, że nie może być spowodowane błędną bo skopiowaniu całą pracy instalację Tomcat z innego komputera. Jeszcze Ciągle otrzymuję ten sam wyjątek:

java.lang.IllegalStateException: No WebApplicationContext found: not in a DispatcherServlet request and no ContextLoaderListener registered? 

Jak już w końcu zorientowali się, było to źle, że złamał JVM wersja aplikacji: ten stosowany Java 7, natomiast przykład robocza (i webapp) był na Java 8.

Mam nadzieję, że pomoże komuś walczyć z tym sprzecznym intuicyjnym komunikatem o błędzie.

+0

Czy mogę zapytać, co masz na myśli przez "ten" i "działającą instancję"? – Stephane

+1

'Ten jeden' ​​odnosi się do instancji podającej błąd,' działająca instancja' jest źródłem na innej maszynie, z której skopiowałem całą rzecz (co działało dobrze). – yktoo

Powiązane problemy