我刚刚开始学习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;
但name的值始终为null。因此注射不起作用。这是我的失败还是我在部署批处理应用程序的wildfly 9.0.1上遇到的问题?
答案 0 :(得分:1)
我回答了我自己的问题 - 希望这有助于其他初学者使用JBatch。
我没有注意到我只能注入在&#34; batchlet&#34; -tag内或在&#34; chunk&#34;中声明的属性(使用@Inject @BatchProperty) - 标签。对于工作级别或步骤级别的属性,这不起作用。