У меня есть Java-программа EE для бэкэнд веб-приложения. Он работает на сервере tomcat. Хотя я могу создавать классы для настройки маршрутизации и т. Д., Как бы я создал класс, который не влияет на маршрутизацию, которая также запускается при запуске? Я хочу создать класс, который подключается к базе данных. Это должно произойти независимо от того, запрашивается ли веб-страница или нет. Я сделал класс для него с public static void main (String [] args)
, но как я могу запустить этот запуск при запуске приложения? Я не понимаю, какой класс вызывается при запуске. У меня есть web.xml и все классы, управляющие маршрутизацией, но есть ли основной класс, который я могу использовать для вызова этого? Если нет, как я могу вызвать запуск класса одновременно с запуском сервера?Java EE как запустить класс при запуске
ответ
(1) Подготовьте класс, который реализует javax.servlet.ServletContextListener
.
(2) Введите начальный код в contextInitialized(ServletContextEvent event)
способ класса.
(3) Зарегистрируйте класс в web.xml, как показано ниже.
<listener>
<listener-class>com.example.YourServletContextListener</listener-class>
</listener>
Это может инициализировать ваше приложение без вызова сервлета.
В вашем методе init() сервлета вы можете выполнять все свои задачи инициализации (то есть задачу, которую необходимо выполнить при загрузке приложения). Также обратите внимание, что в файле развертывания web.xml значение load-on-startup равно 1, чтобы указать контейнеру немедленно загрузить сервлет и вызвать его метод init().
Вы не должны использовать основной метод в веб-приложениях. Вместо этого вы можете переместить код из основного метода в конструктор этого класса или создать новый общедоступный метод в этом классе.
Затем выберите метод Init в своем сервлете, чтобы создать экземпляр класса и вызвать метод.
Servlet Init вызывается только один раз (обычно), когда сервлет получает доступ в первый раз или при загрузке сервера.
Это означает, что ваш класс вызывается только один раз во время загрузки сервлетов.
Как насчет запуска EJB Singleton?
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.ejb.Startup;
@Startup
@Singleton
public class StartUpService {
@PostConstruct
public void start() {
// what you want to execute at startup
}
}
- 1. Java EE 7 + GlassFish 4 - Запустить bean-компонент при запуске
- 2. Инициализировать кэш приложений Java EE при запуске
- 3. Как запустить параллельные процессы в Java EE
- 4. Как запустить Java Jar при запуске окон?
- 5. Как запустить приложение Java EE на CentOS
- 6. Как запустить несколько потоков из Java EE?
- 7. Получение R6034 ошибка при запуске Eclipse, для разработчиков Java EE
- 8. Случайный java.lang.NullPointerException при запуске Java EE приложений на GlassFish Server,
- 9. Ошибка при запуске Eclipse Java EE IDE для веб-разработчиков
- 10. Java - загрузить дополнительный класс при запуске JVM
- 11. Запустить скрипт при запуске linux
- 12. Как запустить пакетный Java-класс
- 13. Запустить файл Jar при запуске?
- 14. Как запустить FileSystemWatcher при запуске оболочки окна
- 15. отладка java-приложения при запуске
- 16. Запустить проект Java EE, деленный на 4
- 17. Как запустить программу при запуске в Debian
- 18. Java Web Application при запуске
- 19. FilerException при создании Java EE 6 Project
- 20. Как запустить приложение Java Web Start при запуске системы?
- 21. Как запустить приложение Java без системного запуска при запуске Windows
- 22. Как запустить java один раз при запуске окна?
- 23. Как запустить демон при запуске сервера весной
- 24. Класс Bean в Java EE 7
- 25. Как запустить MainActivity при запуске службы?
- 26. java - как игнорировать класс или метод только при запуске тестов
- 27. Как загрузить класс java в powerbox при запуске?
- 28. Автоматически требуется класс при запуске/запуске ruby
- 29. Запустить сценарий при запуске терминала
- 30. Запустить скрипт при запуске сеанса?