Podobnie jak każdy normalny WebServlet, konkretyzacja dyspozytorski serwlety można zamówić w web.xml za pomocą <load-on-startup>
Patrząc na servlet 2.5 web.xml xsd
Element obciążenie na starcie oznacza, że aplet ten powinien be Załadowano (utworzono instancję i wywołano funkcję init()) podczas uruchamiania aplikacji internetowej . Opcjonalna zawartość tych elementów musi być liczbą całkowitą określającą kolejność, w jakiej serwlet powinien być załadowany. Jeśli wartość jest ujemną liczbą całkowitą lub element nie jest obecny, kontener może załadować serwlet, gdy tylko wybierze. Jeśli wartość jest dodatnią liczbą całkowitą lub 0, kontener musi zostać załadowany, a zainicjować serwlet podczas wdrażania aplikacji. Kontener musi zagwarantować, że serwlety oznaczone niższymi liczbami całkowitymi zostaną załadowane przed serwletami oznaczonymi wyższymi liczbami całkowitymi. Kontener może wybrać kolejność ładowania serwletów z tą samą wartością przy rozruchu.
Więc Inorder dla DBbuildServletDispatcher
być najpierw załadowane, upewnij się, że jego load-on-startup
jest mniejsza niż load-on-startup
od AppServletDispatcher
<servlet>
<servlet-name>DBbuildServletDispatcher</servlet-name>
<servlet-class>com.foo.DBbuildServletDispatcher</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>AppServletDispatcher</servlet-name>
<servlet-class>com.foo.AppServletDispatcher</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Można zaznaczyć kontekst aplikacji jako dziecko kontekście DB. Nie jestem pewien, czy to jest właściwe, ale kontekst aplikacji zdecydowanie czekałby na DB. –
Musisz dodać 1 load-on-startup> dla kontekstu DBbuild i 2 load-on-startup> dla kontekstu AppDispatcher w twoim web.xml do osiągnąć to. –