在 Spring-XD Admin 中获取作业执行状态时出现异常

Exception when getting job execution status in Spring-XD Admin

我正在尝试查看 运行 作业的执行状态,但在某些 运行dom 点我收到以下错误:

2015-10-14T14:41:24-0400 1.2.0.RELEASE ERROR qtp195949131-28 rest.RestControllerAdvice - Caught exception while handling a request
org.springframework.http.converter.HttpMessageNotWritableException: Could not write content: java.lang.Integer cannot be cast to java.lang.String (through reference chain: org.springframework.xd.rest.domain.JobExecutionInfoResource["jobExecution"]->org.springframework.batch.core.JobExecution["executionContext"]->org.springframework.batch.item.ExecutionContext["values"]->java.util.concurrent.EntrySetView[0]->java.util.concurrent.MapEntry["value"]->java.util.ArrayList[0]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: java.lang.Integer cannot be cast to java.lang.String (through reference chain: org.springframework.xd.rest.domain.JobExecutionInfoResource["jobExecution"]->org.springframework.batch.core.JobExecution["executionContext"]->org.springframework.batch.item.ExecutionContext["values"]->java.util.concurrent.EntrySetView[0]->java.util.concurrent.MapEntry["value"]->java.util.ArrayList[0])

现在,我说 "random",但事实是我什至不知道哪一步导致了这个异常,因为这些是我仅有的日志。作业 运行 成功,看似没有错误,但这真的让我很担心。为此,我已经在网上寻找了好几天,但我没有看到任何可以帮助我调试它的东西,甚至没有给出可能导致这种情况的原因的暗示。有帮助吗?

谢谢,N.S。

好的,所以我发现问题是我们在执行上下文中序列化一个 List>,其中一个内部映射包含一个整数作为对象而不是字符串。这似乎导致上下文的反序列化崩溃。

解决方案?不要将该列表存储在执行上下文中(相反,我们将整个列表对象写入一个文件,以便在各个步骤之间传输)。