powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при выполнении java класс с помощью crontab
11 сообщений из 11, страница 1 из 1
Ошибка при выполнении java класс с помощью crontab
    #33015603
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть сервлет 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
Ошибка при выполнении java класс с помощью crontab
    #33018185
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин ребята я не верю, что никто из Вас не работал с библиотекой :
org.jcrontab

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

мне, например, возможностей Timer/TimerTask хватает. тоже, кстати, мыло
рассылается. хотя сначала была самостоятельная реализация через потоки.
...
Рейтинг: 0 / 0
Ошибка при выполнении java класс с помощью crontab
    #33018237
А.Грасо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
Ошибка при выполнении java класс с помощью crontab
    #33018263
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А.Грасоff™ JEты уже неделю с этим паришься :)

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

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

Спасибо за твои советы.
...
Рейтинг: 0 / 0
Ошибка при выполнении java класс с помощью crontab
    #33018275
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А.Грасо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
Ошибка при выполнении java класс с помощью crontab
    #33018287
грин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я бы посоветовал тебе смотреть в сторону Quartz
если будет желание - подскажу как реализовать то что ты хочешь с его помощью
с org.jcrontab вообще никогда не сталкивался.
...
Рейтинг: 0 / 0
Ошибка при выполнении java класс с помощью crontab
    #33018321
А.Грасоff™ JE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxqЧто ты имееш?

в примере:

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

а у тебя:

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

в примере:

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

а у тебя:

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

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

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

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


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