Chcę zainicjować globalną instancję klasy, zanim mój serwer Tomcat zakończy rozruch i zacznie oferować moje serwlety. Jeśli ta usługa w jakiś sposób nie powiedzie się inicjalizacji, chciałbym, aby cała sekwencja uruchamiania również się nie powiodła (lub tak blisko jak to możliwe, byłoby to bezcelowe, gdyby serwer działał inaczej). W jaki sposób mogę to osiągnąć?Czy istnieje sposób wykonywania kodu podczas uruchamiania serwera Apache Tomcat 6.x w celu wykonywania procedur inicjowania itp.?
Odpowiedz
Każda aplikacja internetowa ma powiązanie z serwletem kontekstu. Obiekt ServletContext jest tworzony po uruchomieniu aplikacji i jest niszczony po wyłączeniu aplikacji. ServletContext ma zasięg globalny i jest podobny do zmiennej globalnej w aplikacji.
http://www.javabeat.net/tips/178-servletcontextlistener-example.html
kompletne wyjaśnienie tutaj
Jedną rzeczą, jaką można zrobić przenośnie jest wdrożenie aplet, który inicjuje wszystko, czego potrzeba w jego metoda init() (a może wywołać System.exit() jeśli zawiedzie, nie wiem, czy masz uprawnienia do tego w Tomcat). Następnie można załadować go za pomocą <load-on-startup>
w swoim web.xml
, aby określić kolejność inicjowania.
To nie jest dobre rozwiązanie. Wszystkie filtry są inicjowane przed wszystkimi serwletami. Więc filtry zostaną zainicjowane przed inicjalizacją, jeśli klasa w pytaniu. –
- 1. Encja Framework Issue Podczas wykonywania procedur przechowywanych
- 2. Domyślny sposób wykonywania kodu w Haskell
- 3. Czy istnieje sposób wykonywania ASCX przez MVC?
- 4. Czy istnieje sposób statycznego wykonywania wiązania C#?
- 5. Czy istnieje skuteczny sposób wykonywania "ciągłego" autofokusu?
- 6. Czy istnieje sposób wykonywania tego rodzaju rzutowania w predykacie C#
- 7. Drukowanie kodu źródłowego podczas wykonywania programu
- 8. Tomcat 6.x Administracja
- 9. Wyjątek podczas uruchamiania serwera Tomcat org.apache.catalina.deploy.WebXml addServlet
- 10. Sposób wykonywania zapisanych procedur za pomocą Doctrine2 i MySQL
- 11. Znajdowanie procedur przechowywanych z uprawnieniami do wykonywania
- 12. Wymagaj pliku bez wykonywania kodu?
- 13. Określ JRE/JDK podczas uruchamiania Apache Tomcat 7
- 14. Błąd podczas wykonywania gcloud
- 15. Narzędzia do wykonywania kodu sakwowego
- 16. Czy istnieje bardziej wektoryzowany sposób wykonywania numpy.outer na osi?
- 17. Czy istnieje sposób wykonywania łączenia między wieloma sesjami w sqlalchemy?
- 18. Czy istnieje sposób wykonywania zerowego kopiowania w .NET?
- 19. Czy istnieje sposób na uzyskanie identyfikatora pakietu w czasie wykonywania?
- 20. Czy istnieje sposób wykonywania sekwencyjnych powiązań w Clojure?
- 21. Czy istnieje sposób dostępu do wstążki (XML) w czasie wykonywania?
- 22. ValueError podczas wykonywania softmax_cross_entropy_with_logits
- 23. Jak nadać uprawnienia do wykonywania procedur przechowywanych w określonym schemacie?
- 24. Czy istnieje sposób przezroczystego wykonywania sprawdzania poprawności obiektów SQLAlchemy?
- 25. Czy nadmierne komentowanie powolnego wykonywania kodu?
- 26. Wyświetlanie kodu źródłowego JSP zamiast wykonywania
- 27. Elegancki sposób wykonywania arytmetycznej krotki
- 28. Błąd podczas wykonywania UPDATE
- 29. Błąd podczas wykonywania matplotlib.pyplot.subplots()
- 30. Wiele rozwiązań podczas wykonywania ILP
Tego właśnie potrzebowałem. Dzięki za szybką i zwięzłą pomoc! – NBJack
możesz oznaczyć odpowiedź jako zaakceptowaną? Pomoże to zachęcić innych do odpowiedzi, gdy zapytasz: –