2011-02-06 17 views
2

私はJBoss5.1.x AS、EJB3.0を使用しています。私は自分のデプロイメントに(Quartzを使って)ジョブを追加しようとしています。私は新しいサービスを登録しているので、アプリケーションのデプロイ時にスケジューラを起動します。サービスが起動時に登録されていません

私の問題は、私のアプリケーションを配備するときにサービスが登録されることがないことです。

マイコード:

インタフェース:

public interface ComponentMonitoringService 
{ 
    void create() throws Exception; 
    void start() throws Exception; 
    void stop(); 
    void destroy(); 
} 

サービス:

@Service(objectName = "com.mirs.ecms.timer:service=ServerStartupManager") 
@Management(ComponentMonitoringService.class) 
public class ServerStartupManager implements ComponentMonitoringService 
{ 
    private SchedulerFactory schedulerFactory = null; 
    private Scheduler scheduler = null; 
    Logger logger = Logger.getLogger("ecms.log"); 

    public void create() throws Exception 
    { 
    } 

    public void start() throws Exception 
    { 
    // Write your startup code 

    initScheduler(); 
    } 

    private void initScheduler() throws ParseException, SchedulerException 
    { 
     schedulerFactory = new StdSchedulerFactory(); 
     scheduler = schedulerFactory.getScheduler(); 

     JobDetail startECMSJob = new JobDetail("startECMSJob", "group1", StartECMSJob.class); 
     CronTrigger trigger1 = new CronTrigger("cronTrigger", "TriggersGroup1", "0 0/5 * * * ?"); 

     scheduler.scheduleJob(startECMSJob, trigger1); 

     scheduler.start(); 
    } 

    public void stop() 
    { 
     try 
     { 
      scheduler.shutdown(); 
     } 
     catch (Exception e) 
     { 
      logger.error("ServerStartupManager Failure occured during Manager stop", e); 
     } 
    } 

    public void destroy() 
    { 
    } 
} 
+0

アプリをどのように展開しますか? –

+0

MyEclipse .. automatticly – rayman

答えて

0

が、私は解決策を見つけました。

私は正しい注釈を使用していませんでした。 EJB3アノテーションを使用する必要があります。

関連する問題