java.util储存_解决Platform6.2系统保存功能报错the object class is 'java.util.HashMap' , so cannot convert the obj...

八月 05, 2015

by

徐景

问题描述:

某客户系统基于Platform6.2开发上线,近期在生产环境上打一个业务代码的epd补丁包,其中有调整过数据实体,打补丁重启Server后访问系统,和该数据实体相关的保存功能,即保存新增的数据报错。且此问题只在生产环境中有,开发环境、环境相近的测试环境都无法重现:

[KMToBeAudit:eos-default][2015-06-24 08:53:15,025][KMToBeAudit:ERROR][com.primeton.ext.engine.core.processor.AbstractPageFlowProcessor:653] error [KMToBeAudit:com.fundway.ncms.p.business.zsht.ZSHTBusinessList.flow?_flowKey=73145c19-9249-4442-8cfd-1773ac3eae96.null]so cannot convert the object to DataObject

com.primeton.ext.data.common.ValueConvertException: the object class is 'java.util.HashMap' , so cannot convert the object to DataObject.

......

解决过程如下:

1、检查业务源代码,看到点击保存功能,从页面提交到页面流会传一个数据实体类型的参数com.fundway.ncms.p.business.zsht.dataset.BizStdcont,不过,未看出代码上有什么问题,理论上代码若有问题在其他环境应该很容易重现。

2、怀疑数据实体文件中定义的字段与实际使用的有出入:

检查了生产环境中页面流、逻辑流编译后的class和java文件;JSP页面编译后的class和java文件;数据集相关文件,即以.dataset .hbm .viewmodel .xsd四个文件名结尾的文件,未发现有此问题。

3、怀疑数据实体实际未加载到缓存中,导致此错误。

将附件的JSP部署到业务应用war下,访问该页面,页面打印的结果是"com.fundway.ncms.p.business.zsht.dataset.BizStdcont not found",说明确实由于某种原因该数据实体未加载到缓存中。导致页面传参无法转化成相应的数据实体对象。

4、最终解决办法,仍然使用该JPS,将以下代码的注释去掉,并修改xsd的文件位置。目的是强制加载数据实体。

/**读取指定的数据实体文件,将数据实体加载到缓存中 **/

/*FileInputStream xsdInputStream = null;

try {

xsdInputStream = new FileInputStream("D:/Platform/apache-tomcat-7.0.54/webapps/default/WEB-INF/_srv/work/user/com.fundway.ncms.p.business.zsht/com/fundway/ncms/p/business/zsht/dataset.xsd");*//*需要加载的数据实体xsd文件的所在位置

DynamicXSDLoader.load(xsdInputStream, null, false);

} catch(Throwable t) {

StringWriter strWriter = new StringWriter();

t.printStackTrace(new PrintWriter(strWriter));

out.println("

" + strWriter.toString() + "
");

} finally {

if (xsdInputStream != null) {

xsdInputStream.close();

}

}*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值