poner cabecera xml y encoding en mensaje soap creado en CICS

Todo lo relacionado con la web desde un mainframe,conectividad,J2EE
Responder
f_caballero
Usuario avanzado
Usuario avanzado
Mensajes: 55
Registrado: 25 Sep 2007, 16:36
País: España
Ciudad: Madrid
Ocupación: Analista de desarrollo

poner cabecera xml y encoding en mensaje soap creado en CICS

Mensaje por f_caballero » 08 Mar 2010, 10:39

Hola, estoy usando la facilidad de CICS para utilización de Web Services, mi aplicación host es cliente (requester) de otra aplicación externa en un servidor remoto (provider) y el método de comunicación entre ambas es Web Services.

El administrador del provider nos facilitó un fichero wsdl con el que generamos nuestro fichero wsbind y las copys cobol para aplantillar los mensajes en el programa. Nuestro administrador de CICS definió PIPELINES y demás recursos y todo bien, pero....

Nuestro mensaje de petición SOAP no incluye una primera línea con:
<?xml version="1.0" encoding="UTF-8"?>
Esto permitiría que el provider entendiera nuestro mensaje perfectamente, aunque CICS lo está codificando UTF-8 por defecto, si no lo ponemos en la cabecera, el provider no lo sabe.

Ya llevo varios días haciendo pruebas y "jugando" con CCSID, además de revisar documentación, y no consigo hacer que aparezca la dichosa línea. Estoy empezando a pensar que puede formar parte de alguna EXIT del procedimiento de conversión incorporado en CICS.

Por cierto, trabajo con z/OS 1.9, Enterprise COBOL 4.1 y CICS TS 3.1

Os agradecería una pista para conseguir incorporar la cabecera xml al mensaje.

Muchas gracias.
Salud y fortuna.
Fernando Caballero

f_caballero
Usuario avanzado
Usuario avanzado
Mensajes: 55
Registrado: 25 Sep 2007, 16:36
País: España
Ciudad: Madrid
Ocupación: Analista de desarrollo

Re: poner cabecera xml y encoding en mensaje soap creado en

Mensaje por f_caballero » 26 Mar 2010, 13:19

Para dejarlo resuelto:
No se trataba de hacer aparecer tal cabecera en el mensaje. No hacía realmente falta.
Lo ocurrido es que la conversión del mensaje desde la aplicación CICS hacia la aplicación del servidor no utilizaba los code-pages correctos.
Se debe especificar el parámetro CCSID en tiempo de generación del fichero wsbidn con DFHWS2LS, para que no utilice el code-page que CICS tenga por defecto si éste no es el adecuado.
En nuestro caso el code-page apropiado era el 1145 (Español con €) mientras que nuestro CICS tiene 037 (Inglés americano), por eso nuestro provider no entendia nuestras "Ñ" en nuestros mensajes como providers.
Salud y fortuna.
Fernando Caballero

Responder