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". Со свойствами на уровне задания или на уровне шага это не работает.

Другие вопросы по тегам