Я создал класс StartupListener, реализующий ServletContextListener.Внутри
@Override
public void contextInitialized(ServletContextEvent contextEvent) {
я создаю таймер, который будет выполняться каждые 30 секунд.Внутри этого таймера я хочу установить параметр из моего компонента @ApplicationScoped для отображения информации из таймера на моем веб-сайте.
Вот что я сделал до сих пор:
StartupListener.java
package de.whatever;
import java.util.Timer;
import javax.naming.Context;
public class CargoServiceStartupListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent contextEvent) {
....
ModuleScannerTask task = new ModuleScannerTask(contextEvent.getServletContext());
Timer timer = new Timer("Scanner");
timer.schedule(task, 0, 10000);
ModuleScannerTask.java
package de.whatever;
import java.util.Enumeration;
public class ModuleScannerTask extends TimerTask{
private ServletContext context;
public ModuleScannerTask (ServletContext context) {
this.context = context;
}
@Override
public void run() {
System.out.println("Start scanning ...");
...
ModuleBean.java
package de.whatever;
@ManagedBean (name="modOverview")
@ApplicationScoped
public class ModuleOverviewBean {
private String randomData;
Мой вопрос заключается в том, как установить данные в поле randomData в компоненте приложения.
Я прочитал, что могу загрузить атрибут "modOverview" из ServletContext, но он возвращает ноль.
Как правильно загрузить и установить значения?
Я использую JBoss (без пружины).
Спасибо Хауке