2017-10-26 101 views
1

実行中のバッチレット内からjobIdを取得する必要があります。すでに私はクラスから仕事を得ることができました。私はバッチレットを腰掛けていますが、バッチレットの内側からではありません。バッチレット内からジョブIDを取得

long jobId = job.start("BatchletName", parm);

この文はBatchlet "BatchletName" を起動します。さて、BatchletName.javaクラスの中からjobIdの値を取得する必要があります。

@Dependent 
@Named("BatchletName") 
@TransactionManagement(TransactionManagementType.BEAN) 
public class BatchletName extends AbstractBatchlet { 
    public String process() throws Exception { 
     // I need jobId here 
     return ""; 
    }  
} 

ありがとうございます。

答えて

1

javax.batch.runtime.context.JobContextをバッチレットクラスに注入し、次にJobContext.getJobName()を呼び出してジョブIDを取得することができます。

import javax.batch.runtime.context.JobContext; 
import javax.inject.Inject; 
import javax.inject.Named; 

@Dependent 
@Named("BatchletName") 
public class BatchletName extends AbstractBatchlet { 
    @Inject 
    JobContext jobContext; 

    public String process() throws Exception { 
     // I need jobId here 

     String jobId = jobContext.getJobName(); 
     return ""; 
    } 
} 
+0

私のために働きます。ありがとうございました! –

関連する問題