JBatch: инъекция BatchProperty на Wildfly 9
Я только начал изучать JSR-352 и сделал это с помощью учебных пособий. Но у меня есть проблема с внедрением пакетных свойств: важная часть моего "myJob.xml" это
<job id="myJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
<properties>
<property name="name" value="MyName"/>
</properties>
С помощью следующего кода можно без проблем получить свойство в Batchlet или Chunk:
@Inject
JobContext batchContext;
@Override
public String process() throws Exception {
Thread.sleep(100);
String name = batchContext.getProperties().getProperty("name");
Но в разных уроках я также нахожу более простой способ сделать это с
@Inject
@BatchProperty(name="name")
String name;
Но значение имени всегда равно нулю. Таким образом, инъекция не работает. Это мой сбой или проблема с wildfly 9.0.1, на которой я развернул Batch Application?
1 ответ
Я отвечаю на свой вопрос - надеюсь, это поможет другим новичкам с JBatch.
Я не заметил, что могу вводить только те свойства (с @Inject @BatchProperty), которые объявлены внутри тега "batchlet" или внутри тега "chunk". Со свойствами на уровне задания или на уровне шага это не работает.