Закрытая переменная экземпляра в сервлете установлена ​​в ноль? - PullRequest
1 голос
/ 25 ноября 2011

В моем сервлете я запускаю фоновый поток onContextInitialized() и, следовательно, мне нужно остановить его onContextDestroyed().Поэтому моему сервлету нужна закрытая переменная экземпляра (назовем это daemon), указывающая на этот поток демона.Демон работает нормально, но ссылка теряется, как только я выхожу contextInitialized()!Например, если я реализую doGet(), чтобы показать состояние потока, он выбрасывает NPE

Так что ответ таков: кто может получить доступ к моей частной переменной экземпляра сервлета и установить для нее значение null?Замечу, что поток работает нормально, просто ссылка не работает

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

Просто установите ссылку в контексте приложения или установите для нее какое-то статическое поле некоторого класса [менее предпочтительный]

Не уверен, чего вы хотите достичь, но это будет делать

1 голос
/ 25 ноября 2011

Сделайте это static, чтобы все экземпляры могли его видеть:

private static Thread daemon;
...