0

我刚开始学习 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 的问题?

4

1 回答 1

2

我正在回答我自己的问题——希望这对 JBatch 的其他初学者有所帮助。

我没有注意到我只能注入在“batchlet”标签或“块”标签内声明的属性(使用@Inject @BatchProperty)。对于作业级别或步骤级别的属性,这是行不通的。

于 2017-01-20T17:53:52.910 回答