1

我已经配置 SpringBatch-Admin-Console 来启动和查看我们在应用程序中使用的作业。

当我从应用程序的控制台启动作业时,作业完成,并且我能够按预期在控制台中查看作业的状态。

适当的价值
编号 449
职位名称analyzeJob
作业实例 449
作业参数时间=03-02-2013 17\:58\:13.54
开始日期 2013-02-03
开始时间 17:58:16
持续时间 00:00:09
状态已完成
退出代码已完成
步骤执行计数 3
步骤执行 [processHeaderStep,inDBScanStep,inMemoryScanStep]

但是当我从 SpringBatch 管理控制台启动作业时,作业按预期完成,但是当我尝试在控制台中查看作业的状态时,我收到以下错误消息。

“HTTP 状态 500 - 请求处理失败;嵌套异常是 com.thoughtworks.xstream.converters.ConversionException: id : id : id : id ---- 调试信息 ---- 消息 : id : id 原因异常 : com。 thinkworks.xstream.mapper.CannotResolveClassException 原因消息:id:id 类:java.util.HashMap 所需类型:java.util.HashMap 路径:/map/entry[3]/masterdata.analyzer.metadata.Metadata/hubCodeTables/ masterdata.analyzer.metadata.MHubCodeTable/codeValueMap/entry[7]/id 行号:-1 ----------------------------- ——”

我认为可能会发生异常,因为我的应用程序能够使用java.util.HashmapJAVA_HOME 中的类,而 tomcat 中的 SpringBatch-Admin-War 不能使用相同的类。

所以我什至创建了一个包含所有 Java 类文件(包括java.util.HashMap)的 jar 文件,并包含在这个 SpringBatch-Admin-Console 的 LIB 文件夹中,但我仍然遇到同样的错误。

我还确保我的应用程序中所有必需的 LIB 文件也存在于 SpringBatch-Admin 的 LIB 文件夹中。仍然得到同样的错误。

奇怪的行为是我能够启动该作业,并且如果我从外部启动它,我也能够查看该作业,但只有当我从 SpringBatch-Admin-Console 启动时才会出现此错误。

谁能告诉我为什么会发生这个错误?

4

2 回答 2

3

在重新启动作业之前删除批处理表。

于 2016-02-19T22:52:22.270 回答
2

由于 spring-batch 将具有相同参数的作业的所有执行存储在同一个表中,如果您不删除这些条目,即使您已经解决了错误,您现在也可能会继续以前的错误。

因此,请确保在再次执行(重新启动)作业之前删除批处理表。

于 2013-07-16T07:19:00.353 回答