0

分区计划在拆分时不起作用

下面的例子只是一个:job -> split -> flow -> step -> chunk -> partition

问题是如果我将流放在一个拆分中,分区计划中设置的参数将不起作用。如果您删除拆分并将流程放入作业中,则它可以正常工作。以下示例将仅打印: null null

但如果我删除拆分,它将打印 valueTest1 valueTest2

谢谢!马蒂亚斯

工作 XML

<job id="myJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
      <split id="mySplit">
        <flow id="myFlow">
            <step id="myStep" >
                <chunk>
                    <reader ref="testbatch.MyItemReader">
                        <properties>
                            <property name="prop1" value="#{partitionPlan['prop1']}"/>
                        </properties>
                    </reader>
                    <writer ref="testbatch.MyItemWriter"/>
                </chunk> 
                <partition>
                    <plan partitions="2" > 
                        <properties partition="0"> 
                            <property name="prop1" value="valueTest1"/> 
                        </properties>
                        <properties partition="1"> 
                            <property name="prop1" value="valueTest2"/> 
                        </properties>
                    </plan>
                </partition>   
            </step>
        </flow>
    </split>
</job> 

读者

package testbatch;

import javax.batch.api.BatchProperty;
import javax.batch.api.chunk.AbstractItemReader;
import javax.inject.Named;

@Named
public class MyItemReader extends AbstractItemReader {

    @BatchProperty
    String prop1;

    @Override
    public Object readItem() throws Exception {
        System.out.println(prop1);
        return null;
    }
}

主要的

package testbatch;

import javax.batch.operations.JobOperator;
import javax.batch.runtime.BatchRuntime;

public class TestBatch {

    public static void main(String[] args) {
        JobOperator jobOperator = BatchRuntime.getJobOperator();
        jobOperator.start("myJob", null);
    }
}
4

1 回答 1

0

这是在 jbatch (JSR 352 RI) 实现中报告的错误。

1.0.1 版本在发布时应该包含修复(现在正在进行 Glassfish 集成测试)。

于 2014-12-17T17:10:27.153 回答