您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

原因:java.lang.IllegalArgumentException:无法反序列化Spring Batch中的执行上下文

原因:java.lang.IllegalArgumentException:无法反序列化Spring Batch中的执行上下文

当您的作业的执行上下文使用版本3(XStream认使用)序列化,然后使用版本4(Jackson认使用)反序列化时,会发生此错误。因此,要么将SpringBatch降级到版本3,要么将您的作业存储库配置为使用XStreamExecutionContextStringSerializer

在您的情况下,您已经定义了类型的BeanBatchConfigurer,因此您可以覆盖该createJobRepository方法并配置XStream序列化器。例如:

@Bean
BatchConfigurer configurer(@Qualifier("dataSource") DataSource dataSource, PlatformTransactionManager transactionManager) {
    return new DefaultBatchConfigurer(dataSource) {
        @Override
        protected JobRepository createJobRepository() throws Exception {
            JobRepositoryfactorybean factory = new JobRepositoryfactorybean();
            factory.setDataSource(dataSource);
            factory.setTransactionManager(transactionManager);
            factory.setSerializer(new XStreamExecutionContextStringSerializer());
            factory.afterPropertiesSet();
            return factory.getObject();
        }
    };
}
java 2022/1/1 18:23:01 有505人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶