0

分割内ではパーティション プランが機能しない

次の例は単なる a: ジョブ -> 分割 -> フロー -> ステップ -> チャンク -> パーティション

問題は、フローを分割内に配置すると、分割計画で設定されたパラメーターが機能しないことです。分割を削除して、ジョブ内にフローを入れるだけで、正常に動作します。次の例では、次のように出力されます: 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 に答える