2

2秒ごとにejbタイマーをウェイクアップしたい。そのために、以下のコードとしてScheulerExpressionを作成しています...

package com.fks.nclp.ejb.timer.service;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.LocalBean;
import javax.ejb.ScheduleExpression;
import javax.ejb.Startup;
import javax.ejb.Timeout;
import javax.ejb.TimerConfig;
import javax.ejb.TimerService;

import com.sun.jersey.spi.resource.Singleton;


@LocalBean
@Singleton
@Startup
public class HelloWorldService {


    @Resource
    TimerService timerService;

    @PostConstruct
    public void initialize(){
            System.out.println("EJB PRE CONSTRUCT");
            ScheduleExpression expression = new ScheduleExpression();

            //SET TIMER TO 2 SEC            
            expression.hour("*");
            expression.minute("*");
            expression.second("*/2");

            timerService.createCalendarTimer(expression,new TimerConfig("TimerScheduler",false));


    }


    @Timeout
    public void startTimer(){
        System.out.println("THIS IS EJB TIMER PROGRAM");
    }

}

しかし...EJBコンテナは2秒ごとにスケジューラをウェイクアップしていません。

これに関する提案はありますか?2秒ごとに目を覚ます表現をするにはどうすればよいですか。

ありがとう、グンジャン。

4

1 に答える 1

3

問題を引き起こしている可能性のある2 つのことがあります。

  1. インポート ステートメントが間違っているcom.sun.jersey.spi.resource.Singletonようjavax.ejb.Singletonです。

  2. @LocalBean注釈を削除してみてください。

于 2012-06-07T08:39:26.270 に答える