Web Services


WMB: Problema en el address location del WSDL expuesto en el servidor aparece localhost

Cuando tenemos un WSDL creado y lo intentamos importar en WMB, este hará una serie de conversiones, entre ellos, modificando los .xsd por .mxsd para crear el Message Set. Una vez que lo tenemos todo listo e intentamos desplegar, en el WSDL expuesto, que podemos consultar sobre la URL del servicio añadiendo ?WSDL, podemos observar que se sustituye el address location por la ruta del servidor si todo ha ido correctamente. En caso contrario, nos seguirá apareciendo localhost, como es el caso:

El problema radica en que las rutas relativas de los .xsd a partir de los cuales se […]


Microservicios

¿Qué pasa cuándo tu aplicación corporativa no para de engordar? Vamos añadiendo encima más y más servicios hasta llegar a un punto en que parece que lo único que podemos hacer es escalar en hardware (más maquinas) hasta llegar al colapso. Para evitar tener una enorme aplicación monolítica, basada en lo que para los Javeros es el cocktel SOAP, WSDL, JEE y ESB; ahora se tiende a APIs REST que exponen pequeños comportamientos y se comunican de forma distribuida entre servicios, sin importan que no estén en la misma aplicación. Martin Fowler dice en este artículo de obligada lectura: Microservicios […]


WMB: Cómo crear un SOAP Fault en ESQL

En el escenario en el que queremos servir un Web Service SOAP, tendremos que prever varias casuísticas de fallo. Entre ellas, tendremos que ser capaces de formar un SOAP Fault, cuando, por ejemplo, el mensaje es valido y no falla al intentar parsearlo en la entrada pero sin embargo, falla cuando le intentamos quitar el sobre SOAP. En este momento, necesitamos servir un mensaje SOAP con un error. Pero hay un problema, si quisiéramos contestar al cliente con un mensaje de fallo personalizado, no podríamos, ya que al no poder parsear el mensaje, no sabemos a qué operación nos está […]


Linux: Envío de una petición JSON a través de un servicio REST desde Linux

Con el comando comando cURL, a través de Linux, es posible enviar una petición JSON a un servicio REST. El comando sirve para transferir datos desde o hacia un servidor, usando alguno de los siguientes protocolos: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET y TFTP. El comando está diseñado para trabajar sin la interacción del usuario. Imaginemos que tenemos nuestro servicio expuesto en la siguiente URL: http://www.miurl.com/miServicioRest Y queremos enviar el siguiente mensaje JSON:

El comando quedaría de la siguiente forma:


SOAP UI: Probar envío por REST-JSON

El parser JSON está preparado por defecto para recibir UTF-8 y el Broker lo admite. Probando con SOAP UI, si se envia metes una “á”, la petición falla. El problema está en que SOAP UI envía la petición con el encoding ISO-8859 y la “á” la convierte a “e1” que NO ES UTF-8 provocando que falle el parser. Para solucionar el problema, hay que establecer en la Request del SOAP UIque use el encoding UTF-8. Así funciona: