我想将数据推送到服务器上,但是数据比较复杂用的是自定义对象,在接口调用的时候就报参数问题,下面我会将问题以图片的形式贴出来,求大神帮忙,已经困扰好多天了
一:服务端wsdl报文
二:错误日志:
三:客户端代码:
public GBaseRetModel cMCompareRet(CapitalCompareModel capitalCompareModel) throws Exception {
//String url = "http://10.60.165.79:8089/services/com.ouyeel.financial.jk.web.CapitalOccupyInfoAxisService";
//String namespace = "http://web.jk.financial.ouyeel.com/";
GBaseRetModel gBaseRetModel = new GBaseRetModel();
//封装推送的数据
GBaseModel gBaseModel = new GBaseModel();
gBaseModel.setCustId("CP1542");
gBaseModel.setInstrtNo("00001");
CapitalCompareBaseModel[] capitalCompareBaseModels = new CapitalCompareBaseModel[1];
capitalCompareBaseModels[0] = new CapitalCompareBaseModel();
capitalCompareBaseModels[0].setAccountNo("01");
capitalCompareBaseModels[0].setAllotAmt("10000");
capitalCompareBaseModels[0].setBankProperty("01");
capitalCompareBaseModels[0].setColAmt("9000");
capitalCompareBaseModels[0].setCompareDate("2019-01-01");
capitalCompareBaseModels[0].setDailyOutAmt("0");
capitalCompareBaseModels[0].setDayDif("1000");
capitalCompareBaseModels[0].setPtUnitCode("CP1542");
capitalCompareBaseModels[0].setLoanCount("10000");
capitalCompareBaseModels[0].setDepositCount("9000");
capitalCompareBaseModels[0].setMonthDif("1000");
capitalCompareBaseModels[0].setDailyInAmt("0");
capitalCompareModel.setCapitalCompareBaseModel(capitalCompareBaseModels);
capitalCompareModel.setGBaseModel(gBaseModel);
try {
Call call = getBsfcCall(capitalCompareModel.getGBaseModel().getCustId());
// String custId = capitalCompareModel.getGBaseModel().getCustId();
//设置服务器调用地址
//call.setTargetEndpointAddress(new java.net.URL(url));
call.setOperationName("cMCompareRet");
QName qn = new QName("http://web.jk.financial.ouyeel.com/","GBaseRetModel");
// 注册序列化和反序列化类
call.registerTypeMapping(GBaseRetModel.class, qn, new BeanSerializerFactory(GBaseRetModel.class, qn),
new BeanDeserializerFactory(GBaseRetModel.class, qn));
QName qn1 = new QName("http://web.jk.financial.ouyeel.com", "GBaseModel");
call.registerTypeMapping(GBaseModel.class, qn1,
new BeanSerializerFactory(GBaseModel.class, qn1),
new BeanDeserializerFactory(GBaseModel.class, qn1));
QName qn2 = new QName("http://web.jk.financial.ouyeel.com","CapitalCompareBaseModel");
call.registerTypeMapping(CapitalCompareBaseModel.class, qn2,
new BeanSerializerFactory(CapitalCompareBaseModel.class, qn2),
new BeanDeserializerFactory(CapitalCompareBaseModel.class, qn2));
QName qn3 = new QName("http://web.jk.financial.ouyeel.com","CapitalCompareModel");
call.registerTypeMapping(CapitalCompareModel.class, qn3,
new BeanSerializerFactory(CapitalCompareModel.class, qn3),
new BeanDeserializerFactory(CapitalCompareModel.class, qn3));
// 设置返回类型
call.addParameter("capitalCompareModel",qn3,javax.xml.rpc.ParameterMode.IN);
call.setReturnType(qn1, GBaseRetModel.class);
//call.setReturnType(qn,GBaseRetModel.class);
//call.setUseSOAPAction(true);
//call.addParameter("capitalCompareModel", org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
//call.addParameter("capitalCompareModel", org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN);
Calendar begin = Calendar.getInstance();
log.info("组织代码:" + capitalCompareModel.getGBaseModel().getCustId());
log.info("包ID:" + capitalCompareModel.getGBaseModel().getInstrtNo());
log.info("交易开始:===发送资金占用===开始时间===" + begin.getTime());
gBaseRetModel = (GBaseRetModel) call.invoke(new Object[] { capitalCompareModel });
// 推送集团与股份
if (gBaseRetModel == null) {
log.error("中转程序返回空值");
} else {
log.info("返回包ID:" + gBaseRetModel.getInstrtNo());
log.info("返回retcode:" + gBaseRetModel.getRetCode());
log.info("返回retmsg:" + gBaseRetModel.getRetMsg());
}
Calendar end = Calendar.getInstance();
log.info("===交易结束:结束时间========" + end.getTime());
} catch (Exception e) {
e.printStackTrace();
}
return gBaseRetModel;
}
参数的数据结构是: