2017-10-26 15 views
1

실행중인 batchlet 내부에서 jobId를 가져와야합니다. 벌써 수업에서 배트릿을 받겠다는 취재를받을 수 있었지만 Batchlet 내부에서는 볼 수 없었습니다.Batchlet 내부에서 jobId 가져 오기

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

이 문장은 Batchlet "BatchletName"를 실행합니다. 지금, 나는 내부 드 클래스 BatchletName.java에서 작업 ID 값을 얻을 필요가 :

@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

나를 위해 작동합니다. 고마워요, 쳉! –