2011-04-06 36 views
5

Estoy trabajando con una interfaz SOAP. El proveedor de la interfaz tiene problemas para obtener el WSDL completo (larga historia). Me han pedido que use svcutil.exe para generar todo lo que necesito. De lo que puedo decir, Svcutil.exesvcutil.exe - Cómo obtener WSDL

  • requiere Windows - No tengo una caja de ventanas disponibles
  • genera C# o Visual Basic

Sería genial si sólo se podía escupir un WSDL. O si hay algo que puedo hacer desde Linux, eso sería genial también.

¿Tengo alguna opción desde aquí, o simplemente tengo que esperar a que el proveedor me proporcione el WSDL?

Supongo que la pregunta es, dado un URL y las instrucciones para usar svcutil.exe, ¿cómo puedo escribir código para usar un servicio SOAP solo con Linux?

Respuesta

12

Si el uso de Linux que podría salvarlo por medio de rizo

curl url > service.wsdl 

así que para obtener un weatherForcast WSDL

curl http://www.webservicex.net/WeatherForecast.asmx?WSDL > weatherForcast.wsdl 
+2

¿No es el objetivo de este proveedor ofrecer un servicio web para permitir la independencia de la plataforma? – grantk

+2

uno esperaría tan ... –

+0

+1 para la solución simple del ganador del fugitivo. Es difícil de creer que el proveedor de servicios no haya dicho simplemente, "Busque el punto final y agregue? WSDL" en lugar de sugerir el uso de una herramienta .NET a un desarrollador de Linux (y presumiblemente Java?). – razlebe

1

@grantk ya ha demostrado el método más fácil si usted sabe dónde el WSDL está alojado, simplemente puede buscar el documento utilizando la herramienta que prefiera.

Pero como usted solicitó específicamente sobre el uso de SVCUtil: ¿podría encontrar un cuadro de Windows, usar SVCUtil para buscar el WSDL, y luego regresar a su pila de Linux (y Java?) Y generar proxies de cliente de ese WSDL para llamar al servicio utilizando su marco de servicios web de su elección.

Si el servicio de destino admite WS-MetadataExchange o XML Web Service Discovery, Svcutil será localizar y descargar el WSDL para ti: ve this HowTo en el sitio web de Microsoft MSDN.

Usando el ejemplo pronóstico del tiempo que @grantk utilizado, puede pedir Svcutil para consultar el servicio y la descarga de metadatos de la siguiente manera:

svcutil /t:metadata http://www.webservicex.net/WeatherForecast.asmx 

(estoy seguro de que hay herramientas similares para hacer esto utilizando WS-MetadataExchange en el mundo de Linux, pero mi experiencia es con SVCUtil.)

+0

PS. Por mi valor de tuppence, cualquier proveedor que no pueda suministrar el WSDL a su propio servicio me avisará con respecto a su confiabilidad. :) – razlebe