2014-12-23 1 views
0

Я устанавливаю значение stepExecutionContext в своем разделителе и пытаюсь получить его в Writer.Не удалось получить доступ к значению stepExecutionContext в записи

Но я не смог получить к нему доступ.

Писатель является ступенчатым.

Может ли кто-нибудь помочь мне, как получить значения контекста выполнения этапа в записи?

Благодаря

Шанкар

+1

Что вы пробовали/errortrace? Как конфигурация вашего писателя? Обычно вы можете получить значение «ExecutionContext», установив свойство «' в вашей конфигурации записи. – dimzak

+0

На самом деле я забыл иметь свойство в своем разделителе. Я просто установил значение в ExecutionContext без свойства. Спасибо за помощь. – Shankar

ответ

1

вы можете реализовать StepExecutionListener в писателе, чтобы получить stepExecution в писателе

public class ExampleWriter implements ItemWriter<T>,StepExecutionListener { 
private JobExecution jobExecution; 

@Override 
public void write(List<? extends T> items) { 
String executionContextValue=jobExecution.getExecutionContext().get("KEY"); 
System.out.println("ExecutionContextValue is:"+executionContextValue); 
} 

@Override 
public ExitStatus afterStep(StepExecution stepExecution) { 
    return null; 
} 

@Override 
public void beforeStep(StepExecution stepExecution) { 
    this.jobExecution= stepExecution.getJobExecution(); 
} 

}

При необходимости зарегистрировать этот класс в качестве слушателя в конфигурации XML

<listener>ExampleWriter</listener>