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

时间:2015-10-15 15:43:23

标签: spring spring-batch spring-xd

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

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])

现在,我说"随机",但事实是我甚至不知道哪个步骤会导致此异常,因为这些是我拥有的唯一日志。工作成功运行似乎没有错误,但这真的让我担心。我已经在网上寻找了好几天的时间,但是我没有看到任何可以帮助我调试这一点的内容,甚至也没有说明可能导致这种情况的原因。有什么帮助吗?

谢谢,N.S。

1 个答案:

答案 0 :(得分:0)

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

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