当前位置: 首页 > 知识库问答 >
问题:

无法转换“java”类型的属性值。util。集合$UnmodifiableMap“到所需类型”组织。springframework。一批项目“执行上下文”

吴均
2023-03-14

当我尝试使用StepExfigtionContext时,我得到了这个错误,在步骤之间共享数据。我在这个框架上是非常新手的,所以我希望这是一个简单的问题,但据我所知,它必须在框架上,因为我没有在任何地方使用"不可修改的地图"。

如果有人遇到这种情况,分享解决方案会有很大帮助,提前谢谢。

bean的定义如下:

<bean id="Candidatos_itemProcessor" class="com.xxx.CandidatoProcessorTest" scope="step">
<property name="stepContext" value="#{stepExecutionContext}"/>

处理器的实现是:

public class CandidatoProcessorTest implements ItemProcessor<Candidato, Candidato> {

private ExecutionContext stepContext = null;
//other private xxx

public Candidato process(Candidato item) throws Exception {

    //some logic here
        stepContext.put("cod_situacion", cod_situacion);
        stepContext.put("des_situacion", des_situacion);
        stepContext.put("fec_situacion", fec_situacion);
    //other logic
    return item;
}

//a private aux method

public void setStepContext(ExecutionContext stepContext) {
    this.stepContext = stepContext;
}

}

错误的堆栈跟踪是:

共有1个答案

晏正豪
2023-03-14

在我的例子中,问题是tasklet的配置是

@Bean
@StepScope
public MyTasklet createTasklet(@Value("#{jobExecutionContext}") ExecutionContext executionContext)

解决问题的办法是把它改成

@Bean
@StepScope
public MyTasklet createTasklet(@Value("#{stepExecution.jobExecution.executionContext}") ExecutionContext executionContext)

这是一个迟来的答案,但希望它能帮助未来的人。

使用的Spring组件版本:

<springframework.version>5.2.12.RELEASE</springframework.version>
<spring-integration.version>5.3.4.RELEASE</spring-integration.version>
<spring-batch-admin.version>1.3.1.RELEASE</spring-batch-admin.version>
<spring-batch.version>4.2.5.RELEASE</spring-batch.version>
    
 类似资料:
  • 任务控制器 创造jsp 在控制器中,我用相同的错误(以及不同的格式,如“yyyy/MM/dd”)编写了以下内容 我还尝试在类中添加注释(以及使用不同的格式),但出现了相同的错误

  • 我有两个实体,它们使用一个主键互相引用,主键是一个实体的整数。我不确定我做这件事的方式是否正确。 下面是引用主键id为int的实体 下面是我们从上面的实体中将外键设置为Kmichango kandaMchango的实体。 这里是表单的一部分,我在这里提交了用户在jumuiya_michango_form.html中提供的数据 下面是我的控制器中用于链接到表单和发布数据的两个方法 在我提交表单后,我

  • 我正在关注Spring in Action 5,在按下提交按钮后创建Taco模型时遇到问题。这是我的设计Taco控制器类: 以及我捕获的错误消息: 炸玉米饼实体如下所示: 以及我的配料实体: 这是一个html页面,必须使用所选成分创建新的Taco对象: 我该怎么修理它?谢谢你的预付款。

  • 我是Spring MVC的新手,试图构建一个示例应用程序,我试图将数据保存到一个名为EmployeeDetails的表中,该表与表用户有一对一的关系。提交表单后,我在字段“user”的对象“employee details”中得到了这个错误字段:rejected value[Users];代码[typemismatch.employeeDetails.user,typemismatch.user,

  • 我是SpringMVC的新手。我开发了一个执行选择,插入,更新和删除的示例应用程序。 下面是我的Bean类 下面是我的控制器类 下面是我的JSP页面 现在我面临两个问题。输入值并单击“添加学生”按钮后,收到以下错误。

  • org.springframework.beans.ConversionNotSupportedException:未能将类型“java.lang.long”的属性值转换为属性“card”所需的类型“card”;嵌套异常是java.lang.IllegalStateException:无法将类型“java.lang.Long”的值转换为属性“Card”所需的类型“Card”:找不到匹配的编辑器或转