复制bean异常org.apache.commons.beanutils.ConversionException: No value specified for ‘Date‘

项目场景:

struts漏洞修复,ajax请求json转换异常。

【实战问题】【12】报错org.apache.commons.lang.exception.NestableRuntimeException

复制bean异常org.apache.commons.beanutils.ConversionException: No value specified for ‘Date’

问题描述:

List<TravelnetChargeTaskEx> jsonList = new ArrayList<TravelnetChargeTaskEx>();
				TravelnetChargeTaskEx taskEx ;
				ChargeTask ct;
				for(Object task:conformList){
					ct = (ChargeTask)task;
					taskEx = new TravelnetChargeTaskEx();
					ConvertUtils.register(new DateConverter(null), java.util.Date.class);//添加这一行代码,重新注册一个转换器,
					BeanUtils.copyProperties(taskEx, ct);
					if(ct.getDealRecords().size()>0){
						int resultIndex = ct.getDealRecords().size()-1;
						DealRecord resultRecord = ct.getDealRecords().get(resultIndex);
						taskEx.setDealResult(resultRecord.getResult());
					}
					if(ct.getStatus()==ChargeTask.CHARGE_TASK_RETURN2SERVICE || ct.getStatus()==ChargeTask.CHARGE_TASK_CLOSED || ct.getStatus()==ChargeTask.CHARGE_TASK_PASSED || ct.getStatus()==ChargeTask.CHARGE_TASK_PAYOFF){
						taskEx.setStatusStrEx(Constants.CHARGE_STATUS_DEALING);
					}else{
						taskEx.setStatusStrEx(taskEx.getStatusStr());
					}
					jsonList.add(taskEx);
				}

解决方案:

org.apache.commons.lang.exception.NestableRuntimeException
出现这个问题的原因是jar包不全,需要以下jar包:

commons-beanutils-1.8.3.jar
commons-lang-2.5.jar
ezmorph-1.0.6.jar
json-lib-2.3-jdk15.jar
接着报错java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory,需要以下jar包

commons-logging-1.1.1.jar
接着又报错java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.JSONArray,需要以下jar包

commons-collections 3.2
如果还出现报错java.lang.ClassNotFoundException: org.apache.commons.lang.*。注意jar包的版本,如果用的是lang3和collections4的话,会有此问题。需改为与上面一致的版本号


复制bean异常org.apache.commons.beanutils.ConversionException: No value specified for ‘Date’
出现这个问题的原因是jar包不全,需要以下jar包:

BeanUtils.copyProperties 复制bean异常org.apache.commons.beanutils.ConversionException: No value specified for ‘Date’

在使用 org.apache.commons.beanutils.BeanUtils.copyProperties(dest, orig)方法复制对象属性时,

若bean中有Date类型的属性,且可能为null时,可能会抛出一个异常:org.apache.commons.beanutils.ConversionException: No value specified for ‘Date’,

解决方案如下:

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.DateConverter;

ConvertUtils.register(new DateConverter(null), java.util.Date.class);//添加这一行代码,重新注册一个转换器,也可以自定义
BeanUtils.copyProperties(dest, orig);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值