关闭

webservice传list问题

564人阅读 评论(0) 收藏 举报

最近遇到的一个问题

返回报文中有一个List<LnPayChkCode>,LnPayChkCode是一个javabean,LnPayChkCode的其中一个参数又是一个List<LnPayChkCode>,这样服务端是可以正常查到数据,但是在客户端的返回报文却收不到任何东西,是null。


解决的办法是在服务端的LnPayChkCode里把list改写成LnPayChkCode javabean的数组,将二级list和一级list中的数据依次给到数组里,在返回报文中也将list参数改写成数组,这样就可以成功传到客户端了。
<span style="white-space:pre">				</span>// 将接收到的审核指标放到mobile下LnPayChkCode类型的list中
				ArrayList<LnPayChkCode> list = new ArrayList<LnPayChkCode>();
				for (app.creditapp.lnpay.entity.LnPayChkCode lnPayChkCode : codeList) {
					LnPayChkCode lpcc = new LnPayChkCode();
					// 将lnPayChkCode中除了二级指标外的字段值赋到mobile下LnPayChkCode类型的lpcc中
					BeanUtils.copyProperties(lpcc, lnPayChkCode);
					// 新建一个LnPayChkCode型的数组存放二级指标
					LnPayChkCode []array = new LnPayChkCode[lnPayChkCode.getList().size()];
					if (lnPayChkCode.getList() != null) {
						// 把二级指标从lnPayChkCode中拿出来放到array里
						for (int i = 0; i < lnPayChkCode.getList().size(); i++) {
							array[i] = new LnPayChkCode();// 初始化变量
							BeanUtils.copyProperties(array[i], lnPayChkCode
									.getList().get(i));
						}
						lpcc.setCodeArray(array);
					}
					list.add(lpcc);
				}
				// 新建一个LnPayChkCode型的数组作为返回报文的参数
				LnPayChkCode []arrayCodes = new LnPayChkCode[list.size()];
				// 将list中的值放到LnPayChkCode的数组中
				for (int i = 0; i < list.size(); i++) {
					arrayCodes[i] = list.get(i);
				}
<span style="white-space:pre">				</span>toInputRspMsg.setArrayCodes(arrayCodes);

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5090次
    • 积分:221
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类