Próbuję wygenerować klienta usługi WWW z wsdl2java z axis2 (wersja 1.6.1).Apache Nieoczekiwany wyjątek podelementu podczas generowania klienta usługi WWW
./wsdl2java.sh -uri http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/efetch_snp.wsdl
Kiedy zadzwonię do tej usługi, otrzymuję wyjątek.
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());
}
Z soaptest jednak widzę Tag R w wyniku.
<Rs rsId="193925233" snpClass="snp" snpType="notwithdrawn" molType="genomic" bitField="050000000005000000000100" taxId="3702">
Jak mogę naprawić ten wyjątek? WSDL nie jest pod moją kontrolą.
Nie ma "jednak" - oś narzeka na obecność tego elementu, nieobecny. –
Tak, ale co mogę zrobić, że oś akceptuje ten tag Rs? –
Nikt nie może odpowiedzieć na to pytanie, zanim zobaczymy pełną odpowiedź, przynajmniej do momentu, w którym występuje element 'Rs', a także odpowiednie części WSDL (deklaracje typu elementu). Być może odpowiedź serwisu naprawdę narusza kontrakt WSDL, to jest całkowicie możliwe. Może używa nowszego WSDL niż ten, który masz. –