Estoy intentando generar un cliente de servicio web con wsdl2java desde axis2 (versión 1.6.1).Apache excepción de subelemento inesperado al generar un cliente de servicio web
./wsdl2java.sh -uri http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/efetch_snp.wsdl
Cuando llamo a este servicio, recibo una excepción.
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 la manera que pueda ver la etiqueta R en el resultado.
<Rs rsId="193925233" snpClass="snp" snpType="notwithdrawn" molType="genomic" bitField="050000000005000000000100" taxId="3702">
¿Cómo puedo solucionar esta excepción? El WSDL no está bajo mi control.
No obstante, "Axis" se queja de que el elemento está allí, no ausente. –
Sí, pero ¿qué puedo hacer para que ese eje acepte esta etiqueta Rs? –
Nadie puede responder eso antes de que veamos la respuesta completa, al menos hasta el punto donde se produce el elemento 'Rs', así como las partes relevantes del WSDL (las declaraciones de tipo de elemento). Quizás la respuesta del servicio realmente está violando el contrato WSDL, eso es completamente posible. Tal vez usa un WSDL más nuevo que el que tienes. –