2017-01-13 7 views
0

Я только начал изучать JSR-352 и сделал это с помощью учебных пособий. Но у меня есть проблемы с введением пакетных-свойств: Важной частью моего «myJob.xml» этоJBatch: BatchProperty injection on Wildfly 9

<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, на котором я развернул пакетное приложение?

+0

Вы пытаетесь ввести имя в том же классе, который вы вводите 'JobContext'? –

+0

Да. Это один и тот же класс. – Veilchen4ever

+1

Это должно определенно работать. У вас есть «beans.xml» в вашем развертывании? –

ответ

1

Я отвечаю на свой вопрос - надеюсь, это помогает другим новичкам с JBatch.

Я не заметил, что я могу только вводить свойства (с @Inject @BatchProperty), которые объявляются внутри «batchlet» -tag или внутри «chunk» -tag. При свойствах на уровне работы или уровне ступени это не работает.