Ich versuche einen Webservice-Client mit wsdl2java von axis2 (Version 1.6.1) zu generieren.Apache Unerwartete Subelementausnahme beim Generieren eines Webservice-Clients
./wsdl2java.sh -uri http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/efetch_snp.wsdl
Wenn ich diesen Service anrufe, bekomme ich eine Ausnahme.
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());
}
Mit soaptest jedoch kann ich den Rs Tag im Ergebnis sehen.
<Rs rsId="193925233" snpClass="snp" snpType="notwithdrawn" molType="genomic" bitField="050000000005000000000100" taxId="3702">
Wie kann ich diese Ausnahme beheben? Die WSDL ist nicht unter meiner Kontrolle.
Es gibt kein "wie auch immer" - Axis beschwert sich darüber, dass das Element da ist, nicht abwesend. –
Ja, aber was kann ich tun, dass die Achse dieses Rs-Tag akzeptiert? –
Niemand kann das beantworten, bevor wir die vollständige Antwort zumindest bis zu dem Punkt, an dem das Element "Rs" auftritt, sowie die relevanten Teile der WSDL (die Elementtypdeklarationen) sehen. Vielleicht verletzt die Antwort des Dienstes wirklich den WSDL-Vertrag, das ist durchaus möglich. Vielleicht verwendet es eine neuere WSDL als die, die Sie haben. –