web-services - example - wsdl types
¿Cuál es la diferencia entre los parámetros? Wsdl y? SingleWsdl (1)
Sin saber qué devuelven esos enlaces, solo podemos adivinar, pero aquí hay algunos detalles que podrían ayudarlo ...
Al sumar el punto final del servicio web con ?wsdl
obtendrá un archivo WSDL. El WSDL puede ser generado por el framework en tiempo de ejecución basado en el código del esqueleto del servicio web o puede ser un archivo físico real que el servidor acaba de devolver cuando se especifica el parámetro URL.
El WSDL contiene un Esquema XML que se puede especificar dentro del propio WSDL o como archivos separados que el WSDL importa. Y ahora ocurre un problema ...
Algunos generadores de stub de servicios web solo pueden manejar un WSDL completo, con el esquema dentro. Si el WSDL importa otros archivos, las herramientas no pueden resolver las importaciones y falla. Esto hizo que los servicios web fueran difíciles de consumir porque los clientes tenían problemas al crear stubs para interactuar con el servicio web. Tanto es así que los proveedores de servicios utilizaron un WSDL real para responder a la solicitud ?wsdl
o comenzaron a escribir todo tipo de hacks y complementos para que el servicio web genere el WSDL completo.
Pero algunos proveedores ni siquiera se molestaron para que los clientes tuvieran que escribir los hacks para analizar el WSDL o tenían que descargar todos los archivos, ensamblarlos manualmente en un solo archivo y usarlos en su lugar.
Con el tiempo, la gente reconoció esto como un problema y los marcos se adaptaron para proporcionar el WSDL completo, no uno con las importaciones. Pero esto generó otro problema. Cambiar lo que devolvió la URL de ?wsdl
podría romper todos los hacks creados a su alrededor para solucionar el problema de importación. Por este motivo, se eligió otra convención para devolver el WSDL completo ?singleWsdl
.
Así que hay marcos que generan un WSDL completo, algunos que lo generan con importaciones, algunos le permiten especificar un archivo físico real, algunos que admiten la convención ?singleWsdl
, otros que no lo hacen. No es relevante para esta pregunta, pero solo para completarla, también existe una convención de ?wsdl2
que le proporciona una definición de WSDL 2.0 ( ?wsdl
le proporciona un WSDL 1.1). Algunos marcos soportan ?wsdl2
, otros no.
Supongo que los problemas que tienes son causados por las importaciones de Schema, pero sin los WSDLs mismos no puedo decir. Espero al menos que estos detalles te ayuden a identificar mejor el problema.
Mi proveedor de mensajería me ofrece dos tipos diferentes de WSDL para usar.
http://my.amazonaws.com:8000/webservice/?wsdl
http://my.amazonaws.com:8000/webservice/?singleWsdl
El primero es un WSDL incrustado . NO se puede usar para generar paquetes WSDL2java
y NO se puede usar JAX-WS para crear una conexión.
El segundo es un solo WSDL. Puede generar paquetes Java con WSDL2java de CXF 3.0 y puede usar JAX-WS para crear una conexión. Funciona muy bien.
Por favor, hágame saber cuál es la diferencia entre estos dos tipos de WSDL.