mar*_*n s 7 java axis2 web-services exception
我正在尝试使用来自axis2(版本1.6.1)的wsdl2java生成一个Web服务客户端.
./wsdl2java.sh -uri http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/efetch_snp.wsdl
Run Code Online (Sandbox Code Playgroud)
当我打电话给这项服务时,我得到一个例外.
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());
}
Run Code Online (Sandbox Code Playgroud)
但是,使用soaptest,我可以在结果中看到Rs Tag.
<Rs rsId="193925233" snpClass="snp" snpType="notwithdrawn" molType="genomic" bitField="050000000005000000000100" taxId="3702">
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个异常?WSDL不在我的控制之下.
sha*_*lic 11
在ADB数据绑定类型的Axis2中,主要发生意外的子元素错误.当SOAP响应中的标记序列与由wsdl形成的java类中的属性序列不同时.
例如,
如果响应或请求XML必须在序列中包含a,b,c元素,而实际的XML在序列中有a,d,c元素,那么Axis2会抱怨说它收到了一个名为d的Unexpected元素.
可以通过更改wsdl中的标记序列来解决它.
| 归档时间: |
|
| 查看次数: |
16447 次 |
| 最近记录: |