Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поток-демон в автозагрузку, как? 
:(
    Опции темы
faceoff
Дата 31.12.2009, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.7.2007

Репутация: нет
Всего: нет



необходимо запустить поток-демон вместе с War Deploy
не запускается и я туплю ...

делаю так:
файл инициализации для запуска
Код

package пакет;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServlet;

public class InitServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;
    static final DateFormat FORMAT = new SimpleDateFormat("HH:mm:ss");

    public void init() {
        log( getServletName() + " initialised\n" );
        new Daemons();
        log( "Done!\n" );
    }
    
    public void log(String msg){
        System.out.println(FORMAT.format(new Date())+": "+msg);
    }

}


web.xml
Код

<servlet>
<servlet-name>InitServlet</servlet-name>
    <servlet-class>пакет.InitServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>


тут все нормально InitServlet отрабатывает, правда 
вот строка new Daemons(); в init() методе никак себя не проявляет
т.е. никаких ошибок и никаких выводов

ниже классы реазирующие старт демонов

Код

package пакет;

public class Daemons {

      public static void main(String[] args) throws Exception {
        Thread d = new Daemon();
        System.out.println("d.isDaemon() = " + d.isDaemon());
        // Allow the daemon threads to
        // finish their startup processes:
        Thread.sleep(1000);
      }
    }


Код

package пакет;

class Daemon extends Thread {
      private Thread[] t = new Thread[10];

      public Daemon() {
        setDaemon(true);
        start();
      }

      public void run() {
        for (int i = 0; i < t.length; i++)
          t[i] = new DaemonSpawn(i);
        for (int i = 0; i < t.length; i++)
          System.out.println("t[" + i + "].isDaemon() = " + t[i].isDaemon());
        while (true)
          yield();
      }
    }

    class DaemonSpawn extends Thread {
      public DaemonSpawn(int i) {
        start();
        System.out.println("DaemonSpawn " + i + " started");
      }

      public void run() {
        while (true)
          yield();
      }
    }


так вот... сообщения    log( getServletName() + " initialised\n" ); и  log( "Done!\n" ); выводятся, а между ними пустота
хотя когда запускаю отдельно то отрабатывает main нормально

где косяк?


PM MAIL   Вверх
Joss
Дата 31.12.2009, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 19.3.2006

Репутация: нет
Всего: 1



Цитата(faceoff @  31.12.2009,  00:13 Найти цитируемый пост)
строка new Daemons(); в init() методе никак себя не проявляет

А как она должна себя проявлять? )) В конструкторе Daemons разве что-то происходит?

PM MAIL   Вверх
faceoff
Дата 31.12.2009, 16:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.7.2007

Репутация: нет
Всего: нет



Цитата(Joss @ 31.12.2009,  09:54)
Цитата(faceoff @  31.12.2009,  00:13 Найти цитируемый пост)
строка new Daemons(); в init() методе никак себя не проявляет

А как она должна себя проявлять? )) В конструкторе Daemons разве что-то происходит?

smile в конструкторе ничего ....

а каким образом можно выполнить метод main?
я то считал, что он должен был выполниться :(
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.