我试图从axis2(版本1.6.1)生成wsdl2java web服务客户端。Apache生成Web服务客户端时意外的子元素异常
./wsdl2java.sh -uri http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/efetch_snp.wsdl
当我打电话给这个服务时,我得到一个异常。
org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement {http://www.ncbi.nlm.nih.gov/soap/eutils/efetch_snp}Rs
try {
EFetchSnpServiceStub fetchService = new EFetchSnpServiceStub();
EFetchSnpServiceStub.EFetchRequest reqIdSnp = new EFetchSnpServiceStub.EFetchRequest();
reqIdSnp.setId("193925233");
EFetchSnpServiceStub.EFetchResult resIdSnp = fetchService.run_eFetch(reqIdSnp);
} catch (Exception e) {
System.out.println(e.toString());
}
随着soaptest不过,我可以看到结果的RS卷标。
<Rs rsId="193925233" snpClass="snp" snpType="notwithdrawn" molType="genomic" bitField="050000000005000000000100" taxId="3702">
我该如何解决这个异常? WSDL不受我控制。
没有“但是” - Axis抱怨在那里的元素,而不是缺席。 – 2012-04-11 21:24:42
是的,但我能做些什么,该轴接受这个Rs标签? – 2012-04-11 21:57:10
在我们看到完整的响应之前,至少直到发生元素“Rs”的点以及WSDL的相关部分(元素类型声明)之前,没有人能够回答这个问题。也许服务的响应确实违反了WSDL合约,这完全有可能。也许它使用的是比你所拥有的更新的WSDL。 – 2012-04-11 22:01:08