我试图在我的android应用程序中使用kSOAP 2,当我尝试执行特定的web服务请求时,最终出现“双ID”异常。我能找到这个地方在KSOAP源代码中被抛出,它是在SoapSerializationEnvelope
类方法public Object read()
这里是显示异常的代码的摘录被抛出:kSOAP2 double ID exception
if (id != null) {
Object hlp = idMap.get(id);
if (hlp instanceof FwdRef) {
FwdRef f = (FwdRef) hlp;
do {
if (f.obj instanceof KvmSerializable)
((KvmSerializable) f.obj).setProperty(f.index, obj);
else
((Vector) f.obj).setElementAt(obj, f.index);
f = f.next;
} while (f != null);
} else if (hlp != null)
throw new RuntimeException("double ID");
idMap.put(id, obj);
}
我不敢肯定这个例外是关于什么的,或者我可以如何解决它。任何人都知道这个例外的处理是什么?
感谢
编辑:
应当指出的是,我也使用这个应用的iOS版本一个SOAP Web服务连接方法,以及完全相同的请求没有任何问题。
新信息:
经仔细检查,这个问题似乎是从XML响应我得到含有<diffgr:before>
元件,其具有与上述相同的ID的表得到的。我认为这是问题的原因,至此我已经完成的其他请求没有这个元素,并且没有例外。因此,为了补充问题:我可以停止webservice在其响应中发送该块,还是让kSOAP忽略它?