Spring Batch Admin Console - com.thoughtworks.xstream.mapper.CannotResolveClassException“class:java.util.HashMap”

时间:2013-02-03 12:40:03

标签: java spring-batch spring-batch-admin

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

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

Property        Value
ID              449
Job Name        analyzeJob
Job Instance    449
Job Parameters  time=03-02-2013 17\:58\:13.54
Start Date      2013-02-03
Start Time      17:58:16
Duration        00:00:09
Status          COMPLETED
Exit Code       COMPLETED
Step Executions Count   3
Step Executions [processHeaderStep,inDBScanStep,inMemoryScanStep]

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

“HTTP状态500 - 请求处理失败;嵌套异常是com.thoughtworks.xstream.converters.ConversionException:id:id:id:id ----调试信息----消息:id:id cause-exception :com.thoughtworks.xstream.mapper.CannotResolveClassException cause-message:id:id类:java.util.HashMap required-type:java.util.HashMap path:/map/entry[3]/masterdata.analyzer.metadata.Metadata /hubCodeTables/masterdata.analyzer.metadata.MHubCodeTable/codeValueMap/entry[7]/id行号:-1 -------------------------- ----- “

我认为异常可能发生,因为我的应用程序能够使用JAVA_HOME中的类java.util.Hashmap,而tomcat中的SpringBatch-Admin-War无法使用相同的。{/ p>

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

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

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

有人可以告诉我为什么会出现这个错误吗?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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