Sto provando a generare un client di servizio Web con wsdl2java da axis2 (versione 1.6.1).Apache Eccezione di sottoelemento imprevista durante la generazione di un client di servizio Web
./wsdl2java.sh -uri http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/efetch_snp.wsdl
Quando chiamo questo servizio, ottengo un'eccezione.
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());
}
Con soaptest tuttavia posso vedere il tag Rs nel risultato.
<Rs rsId="193925233" snpClass="snp" snpType="notwithdrawn" molType="genomic" bitField="050000000005000000000100" taxId="3702">
Come posso risolvere questa eccezione? Il WSDL non è sotto il mio controllo.
Non c'è "tuttavia" - l'Asse si lamenta dell'elemento presente, non assente. –
Sì, ma cosa posso fare che l'asse accetti questo tag Rs? –
Nessuno può rispondere prima di vedere la risposta completa, almeno fino al punto in cui si verifica l'elemento 'Rs', così come le parti rilevanti del WSDL (le dichiarazioni del tipo di elemento). Forse la risposta del servizio sta davvero violando il contratto WSDL, è assolutamente possibile. Forse usa un WSDL più recente di quello che hai. –