Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring批量定制ItemReader赢得';t打开_Java_Spring_Spring Batch - Fatal编程技术网

Java Spring批量定制ItemReader赢得';t打开

Java Spring批量定制ItemReader赢得';t打开,java,spring,spring-batch,Java,Spring,Spring Batch,我有一个Spring批处理项目,其中有一个自定义的ItemReader,它从web服务异步检索数据 此自定义ItemReader使用ExecutorService向web服务提交调用。然而,我有困难初始化它 我试图通过AbstractItemCountingItemStreamItemReader提供的doOpen方法初始化它,但是似乎没有调用它 Spring以以下方式注入ItemReader: @Bean @JobScope public ItemReader<Map<String

我有一个Spring批处理项目,其中有一个自定义的
ItemReader
,它从web服务异步检索数据

此自定义
ItemReader
使用
ExecutorService
向web服务提交调用。然而,我有困难初始化它

我试图通过
AbstractItemCountingItemStreamItemReader
提供的
doOpen
方法初始化它,但是似乎没有调用它

Spring以以下方式注入
ItemReader

@Bean
@JobScope
public ItemReader<Map<String, Object>> reader(@Value("#{jobParameters['lastRun']}") Date lastRun,
        @Value("#{jobParameters['codInt']}") Long codInt) {

    Map<String, Object> parameterValues = new HashMap<String, Object>();
    if (lastRun != null) {
        parameterValues.put("lastRun", DateFormatUtils.format(lastRun, dateFormat));
    }
    if (codInt != null) {
        parameterValues.put("codInt", codInt);
    }

    JsonResourceAsyncPagingItemReader<Map<String, Object>> reader = new JsonResourceAsyncPagingItemReader<>();
    reader.setHttpUrl(server + pathTemplate);
    reader.setRestTemplate(restTemplate);
    reader.setParameterValues(parameterValues);
    reader.setPageSize(pageSize);

    return reader;
}

知道哪里可能出错了吗?

如果您返回ItemStream或ItemStreamWriter,应该没问题。

()

如果返回ItemStream或ItemStreamWriter,应该可以。

()

谢谢,你把问题解决了!!我将返回类型从ItemReader更改为ItemStreamReader,效果非常好。谢谢,你解决了这个问题!!我将返回类型从ItemReader更改为ItemStreamReader,它工作得非常好。
@Bean
public Step importProductStep() {
    return stepBuilderFactory.get("importProductJobStep")
            .<Map<String, Object>, Product>chunk(1000)
            .reader(reader(null, null))
            .processor(processor())
            .writer(writer())
            .build();
}