gpt4 book ai didi

java - 使用StepBuilder创建tasklet时出现"Unable to deserialize the execution context"

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:58 30 4
gpt4 key购买 nike

我最近开始使用 Spring Batch(对 Java 来说相当新),现在我正在尝试创建一个在数据库中创建表的 tasklet。

    @EnableBatchProcessing
@SpringBootApplication
public class Configure {

public static void main(String[] args)
{
SpringApplication.run(Configure.class, args);
}
@Bean
public Job AggregateTransactionsFromDatabaseToXML(JobBuilderFactory jobBuilderFactory,
StepBuilderFactory stepBuilderFactory,
Tasklets tasklets){return jobBuilderFactory.get("etl")
.incrementer(new RunIdIncrementer())
.start(tasklets.createTempTable(null, null))
.build();}

@Configuration
static class Tasklets{
@Bean
Step createTempTable(DataSource dataSource, StepBuilderFactory stepBuilderFactory) {
StepBuilder createTempTable = stepBuilderFactory.get("create temp table");
String sql = "CREATE TABLE DatabaseName.TableName\n" +
"(\n" +
" column1 VARCHAR(255) NOT NULL,\n" +
" column2 DATE NOT NULL,\n" +
" column3 DECIMAL NOT NULL,\n" +
" column4 BIGINT NOT NULL,\n" +
" column5 BIGINT NOT NULL\n" +
")";
return createTempTable.tasklet((contribution, chunkContext) -> {
new JdbcTemplate(dataSource).execute(sql);
return RepeatStatus.FINISHED;
})
.allowStartIfComplete(true)
.build();
}
}
}

我收到错误:由以下原因引起:java.lang.IllegalArgumentException:无法反序列化执行上下文。

我不知道这怎么可能。

我在网上查找了 StepBuilder 的示例,但找不到任何对我的任务有用的信息。 TaskletStepBuilder exampleReader en Writer example

我使用 StepBuilder 是否错误?有人知道如何解决这个问题吗?

问题已经解决:我没有配置spring应用上下文。这显然很重要。

最佳答案

问题已经解决:我没有配置spring应用上下文。这显然很重要。

我还将tasklets.createTempTable(null, null)更改为tasklets.createTempTable(null, stepBuilderFactory)。

关于java - 使用StepBuilder创建tasklet时出现"Unable to deserialize the execution context",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44019807/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com