Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при выполнении java класс с помощью crontab / 11 сообщений из 11, страница 1 из 1
14.04.2005, 12:47
    #33015603
maxq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
Есть сервлет testCron который всегда стартует когда стартует сервер Resin 2.1.13 .
Я хочу в этом сервлете вызвать java класс в определенные день месяца(или каждый день)


Фрагмент testCron
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
 package  ua.com.silverpoint.salers.actions.email;
 public   class  testCron  extends  HttpServlet{
     private   static  Crontab crontab= null ;

     private  CrontabParser cp =  new  CrontabParser();
     private  CrontabEntryBean[] ceb =  new  CrontabEntryBean[ 1 ];


     public   void   init(){
         try {
            ProjectProperties conf = ProjectPropertiesManager.getProjectProperties("jcrontab");
            Jcrontab j =  new  Jcrontab();
            crontab= Crontab.getInstance();
            crontab.init(conf);

            ceb[ 0 ] = cp.marshall("* * * * * ua.com.silverpoint.salers.actions.email.HelloWorld");
            ceb[ 0 ].setYears("*");
            ceb[ 0 ].setSeconds("*");
            ceb[ 0 ].setBusinessDays(true);
            ceb[ 0 ].setId( 0 );
        }
         catch (Exception e){
            System.out.println(e.toString());
        }
    }

     public   void  doGet(HttpServletRequest request, HttpServletResponse response)  throws  IOException, ServletException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
   }
}

Фрагмент класса HelloWorld
Код: plaintext
1.
2.
3.
4.
5.
6.
 package  ua.com.silverpoint.salers.actions.email;
 public   class  HelloWorld {
      public   static   void  main(String [] args)  throws  Exception {
         System.out.println("HelloWorld");
     }
}

Фрагмент файла web.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<servlet>
  	<servlet-name>Cron</servlet-name>
  	<servlet- class >ua.com.silverpoint.salers.actions.email.testCron</servlet- class >
    <load-on-startup> 1 </load-on-startup>
  </servlet>

  <servlet-mapping>
  	<servlet-name>Cron</servlet-name>
  	<url-pattern>/Cron</url-pattern>
  </servlet-mapping>

Но почемуто каждую минуту на сервере мне выдаеться сообщение :
INFO [Log4JLogger]:(info:81): org.jcrontab.data.DataNotFoundException: No CrontabEntries available , хотя должно выводиться сообщение HelloWorld.
Также пробывал вместо класса ua.com.silverpoint.salers.actions.email.HelloWorld писать другой любой класс не помогло. Также пробывал вместо строки crontab.init(conf) писать crontab.init() результат аналогичен.

Подскажите как его заставить выводить мое сообщение HelloWorld. Может я не учел еще какието настройки.

Зарание благодарен.
Maxq.
...
Рейтинг: 0 / 0
15.04.2005, 14:06
    #33018185
maxq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
Блин ребята я не верю, что никто из Вас не работал с библиотекой :
org.jcrontab

Может у когото есть какието примеры где используються классы:
org.jcrontab.data.CrontabEntryBean
или
org.jcrontab.data.CrontabParser
...
Рейтинг: 0 / 0
15.04.2005, 14:11
    #33018201
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
ты уже неделю с этим паришься :)

мне, например, возможностей Timer/TimerTask хватает. тоже, кстати, мыло
рассылается. хотя сначала была самостоятельная реализация через потоки.
...
Рейтинг: 0 / 0
15.04.2005, 14:23
    #33018237
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
а вот твой код в заглавном посте этого топика слегонца не
кореллируется с примером из jcrontab'а:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 public   class  SimpleTest  extends  TestCase {
   private  CrontabParser cp =  new  CrontabParser();
   static   private  Crontab crontab =  null ;
   private  CrontabEntryBean[] ceb =  new  CrontabEntryBean[ 3 ];

   public  SimpleTest(String name) {
     super (name);
  }

   protected   void  setUp()  throws  Exception {
    crontab = Crontab.getInstance();
    crontab.getInstance().init();
        
    ceb[ 0 ] = cp.marshall("* * * * * org.jcrontab.tests.test testing");
    ceb[ 0 ].setYears("*");
    ceb[ 0 ].setSeconds("0");
    ceb[ 0 ].setBusinessDays(true);
    ceb[ 0 ].setId( 0 );

    // skipped
  }

  // skipped

   public   void  testCrontabParser()  throws  Exception {
    CrontabParser cp =  new  CrontabParser();
    CrontabEntryBean ceb = cp.marshall("* * * * * org.jcrontab.tests.TaskTest");
    System.out.println("this is the bean resulting from " +
                           " * * * * * org.jcrontab.tests.TaskTest \n" + 
    ceb.toXML());
  }
}
...
Рейтинг: 0 / 0
15.04.2005, 14:34
    #33018263
maxq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
А.Грасоff™ JEты уже неделю с этим паришься :)

мне, например, возможностей Timer/TimerTask хватает. тоже, кстати, мыло
рассылается. хотя сначала была самостоятельная реализация через потоки.

Может ты и прав ну я прочитал про org.jcrontab он мне очень понравился и у меня, я уверен какаято мелочь не получаеться. Так как он вызываеться каждую минуту(или любой другой период) токо толи не находит класс хотя я видел в дебаге он его находит. Может там нужно и еще метод задавать, который должен вызываться, тоже пробывал. В принцепе я нашел как можно это реализовать с помощью batch файла который нужно вызвать на сервере, так наверное в понедельник и сделаю.
Но хочеться докопаться до истины с org.jcrontab так, как я не привык сдаваться - это уже дело принцепа.

Спасибо за твои советы.
...
Рейтинг: 0 / 0
15.04.2005, 14:41
    #33018275
maxq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
А.Грасоff™ JEа вот твой код в заглавном посте этого топика слегонца не
кореллируется с примером из jcrontab'а:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 public   class  SimpleTest  extends  TestCase {
   private  CrontabParser cp =  new  CrontabParser();
   static   private  Crontab crontab =  null ;
   private  CrontabEntryBean[] ceb =  new  CrontabEntryBean[ 3 ];

   public  SimpleTest(String name) {
     super (name);
  }

   protected   void  setUp()  throws  Exception {
    crontab = Crontab.getInstance();
    crontab.getInstance().init();
        
    ceb[ 0 ] = cp.marshall("* * * * * org.jcrontab.tests.test testing");
    ceb[ 0 ].setYears("*");
    ceb[ 0 ].setSeconds("0");
    ceb[ 0 ].setBusinessDays(true);
    ceb[ 0 ].setId( 0 );

    // skipped
  }

  // skipped

   public   void  testCrontabParser()  throws  Exception {
    CrontabParser cp =  new  CrontabParser();
    CrontabEntryBean ceb = cp.marshall("* * * * * org.jcrontab.tests.TaskTest");
    System.out.println("this is the bean resulting from " +
                           " * * * * * org.jcrontab.tests.TaskTest \n" + 
    ceb.toXML());
  }
}


Что ты имееш в виду где именно он не кореллируется ?
Я просто перелал на свой лад и где я ошибся пока не вижу может подскажеш?
Буду благодарен.
...
Рейтинг: 0 / 0
15.04.2005, 14:46
    #33018287
грин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
я бы посоветовал тебе смотреть в сторону Quartz
если будет желание - подскажу как реализовать то что ты хочешь с его помощью
с org.jcrontab вообще никогда не сталкивался.
...
Рейтинг: 0 / 0
15.04.2005, 15:00
    #33018321
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
maxqЧто ты имееш?

в примере:

crontab = Crontab.getInstance();
crontab.getInstance().init();

а у тебя:

crontab = Crontab.getInstance();
crontab.init(conf);
...
Рейтинг: 0 / 0
15.04.2005, 16:25
    #33018618
maxq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
А.Грасоff™ JE maxqЧто ты имееш?

в примере:

crontab = Crontab.getInstance();
crontab.getInstance().init();

а у тебя:

crontab = Crontab.getInstance();
crontab.init(conf);

Да я пробывал и так и так.
Я просто где то видел что в crontab.init(conf) , conf - это jcrontab.properties
...
Рейтинг: 0 / 0
15.04.2005, 16:33
    #33018642
maxq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
Я вот думаю, может там как то надо настроить jcrontab.properties ?
...
Рейтинг: 0 / 0
15.04.2005, 18:20
    #33018950
maxq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при выполнении java класс с помощью crontab
Все я добил это у меня все работает :)

Всем спасибо за советы
там просто было надо вместо
crontab.init(conf);
поставить
crontab.init();

и самое главное после первого запуска он создает файл в
{$HOME}.jcrontab/crontab
в котором был символ # а я его убрал и поместил туда
* * * * * ua.com.silverpoint.salers.actions.email.HelloWorld
и все заработало
Главное найти файл crontab он без расширения и в него уже заносяться задачи.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при выполнении java класс с помощью crontab / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]