2012-02-13 28 views
13

Necesito usar el servicio SOAP de una impresora. Hay una herramienta de Windows para acceder a este servicio y lo utilicé para generar solicitudes SOAP y respuestas de las funciones importantes que necesito.Generar WSDL para el servicio SOAP existente utilizando tráfico capturado

Ahora debería escribir un cliente para Linux usando Python y encontré que la manera más fácil sería usar la biblioteca suds con un archivo WSDL. ¡Pero no tengo este WSDL!

Cuando investigué la herramienta de Windows (miré el hexdump de los ejecutables), llegué a la conclusión de que probablemente no hay ningún archivo WSDL.

Ahora mi pregunta es, ¿alguien ha tenido experiencia con los servicios SOAP de "ingeniería inversa" y conoce herramientas que podrían ser útiles para crear archivos WSDL para servicios existentes? (Googleing aún no ha mencionado nada útil).

Respuesta

11

Mencionó que este es el servicio SOAP de una impresora. ¿Está documentada la API de la impresora en el sitio del fabricante? ¿La documentación incluye el WSDL? ¿Puedes obtener el WSDL del fabricante?

Si puede obtener el WSDL del fabricante, ¡ya está!

De lo contrario, debe compilar el WSDL por su cuenta, porque dudo que pueda encontrar una herramienta que genere WSDL con ejemplos de SOAP (cuando trabaja con servicios web SOAP obtiene principalmente dos tipos de herramientas: las que generan código de WSDL + los que generan WSDL del código).

No es difícil crear el WSDL si está familiarizado con SOAP, WSDL y XSD. Solo necesita un editor de texto o incluso un WSDL editor para acelerar las cosas.

Si no tiene plena confianza en su conocimiento de WSDL, todavía hay algunas herramientas que pueden ayudarlo a completar el WSDL completo. Aquí hay una forma de hacerlo:

- Primero necesita crear el XML schema para las cargas útiles SOAP. Para esto puede encontrar herramientas, incluso some online. Después de tener el esquema, ajústelo a sus necesidades agregando, cambiando o eliminando elementos.

- Ahora puede usar el XSD para generar un WSDL. Hay un online tool que hace eso. Solo necesita que los tipos de elemento de solicitud/respuesta finalicen con Solicitud/respuesta. Asegúrate de leer las instrucciones.

Usted toma su archivo XSD, cambia los nombres de las operaciones para agregar el Solicitud/Respuesta sufijo y lo alimenta al WSDL Generator - Web Tool. Obtendrás tu WSDL.

Ahora ajustar este WSDL como desee (quitar el Solicitud/Respuesta sufijos si no los necesita), entonces ...

- ... asegúrese de que usted termina con a valid WSDL .

- Ahora usted puede tomar su WSDL y utilizar una herramienta como SoapUI para generar solicitudes de muestras y las respuestas de ella sólo para verificar que usted obtenga los resultados apropiados espalda.

¿Los mensajes de SoapUI coinciden con los mensajes que comenzó? En caso afirmativo, ha finalizado y puede alimentar el WSDL al suds para crear el cliente Linux. Si no, modifique el WSDL hasta que obtenga el resultado que busca.

+0

Gracias por la respuesta. No, lamentablemente, no hay documentación. Por ahora, todavía tenemos el problema de descifrar el uso de contraseñas, pero si pasamos eso, probaré sus sugerencias. – maufl

+1

Si alguien lee esto, lo que hice fue: 1. Use trang para generar xsd desde xml (toma varios archivos de entrada) 2. Escribí el resto de la mano, utilicé Eclipse para verificar la corrección del wsdl. – maufl

+1

El enlace "herramienta en línea" está roto – user2813274

Cuestiones relacionadas