Recuperación de cabeceras de transporte con JAX-RPC

Puede habilitar un cliente de servicios web JAX-RPC (API de Java™ para RPC basado en XML) existente para que recupere los valores de las cabeceras de transporte. Para una solicitud que utiliza HTTP, las cabeceras de transporte se recuperan de las cabeceras HTTP que se encuentran en el mensaje de respuesta HTTP. Para una solicitud que utiliza JMS (Java), las cabeceras de transporte se recuperan de las propiedades del mensaje JMS que se encuentran en el mensaje de respuesta JMS.

Antes de empezar

Es necesario un cliente de servicios web que puede habilitar para recuperar cabeceras de transportes.

La recuperación de cabeceras de transporte sólo está soportada por clientes de servicios web y sólo para los transportes HTTP y JMS. El cliente de servicios web debe llamar directamente a las API JAX-RPC y no a través de capas intermediarias, como una función de tipo pasarela. El envío y la recuperación de las cabeceras de transporte en el servidor de servicios web se realiza a través de API de servicios que no son web.

Acerca de esta tarea

Cuando se utiliza el modelo de programación JAX-RPC, el cliente debe establecer una propiedad en el objeto Stub o Call para recuperar valores de las cabeceras de transporte. Una vez establecida la propiedad, los valores se leen desde invocaciones de método posteriores, comparándolos con la instancia de Stub o Call hasta que la propiedad asociada se establece en null o se descarta el objeto Stub o Call.

Para recuperar valores de las cabeceras de transporte de las respuestas de entrada, modifique el código de cliente.

Procedimiento

  1. Cree un objeto java.util.HashMap que contenga los nombres de las cabeceras de transporte que se van a recuperar de los mensajes de respuesta entrantes.
  2. Añada una entrada a HashMap para cada cabecera de la que desea recuperar un valor en cada mensaje de respuesta de entrada.
    1. Establezca la clave de la entrada de HashMap en una serie que coincida exactamente con el identificador de la cabecera de transporte. Puede definir el identificador de la cabecera como un nombre de cabecera reservado, por ejemplo, como una cookie en el caso de HTTP, o puede ser un identificador de cabecera definido por el usuario como, por ejemplo, MyTransportHeader. Determinados identificadores de cabecera se procesan de una forma única, aunque no se realizan más comprobaciones para confirmar el valor de identificador de cabecera. Para obtener más información sobre los identificadores de cabecera HTTP que tienen una consideración única, consulta los métodos recomendados de las propiedades de la cabecera de transporte. En la clase com.ibm.websphere.webservices.Constants se pueden encontrar constantes de series de identificadores de cabecera comunes, como HTTP_HEADER_SET_COOKIE. El valor de la entrada HashMap se ignora y no necesita establecerlo. Un HashMap vacío, esto es, uno que no es nulo pero que no contiene claves, hace que se recuperen todas las cabeceras de transporte de la respuesta que se va a recuperar.
  3. Establezca la entrada HashMap en el objeto Stub o Call mediante la propiedad com.ibm.websphere.webservices.Constants.RESPONSE_TRANSPORT_PROPERTIES. Cuando se establece HashMap, la propiedad RESPONSE_TRANSPORT_PROPERTIES se utiliza en invocaciones subsiguientes para recuperar las cabeceras de las respuestas. Si establece la propiedad en null, no se recuperan cabeceras de la respuesta. Para obtener más información acerca de estas propiedades, consulte la documentación sobre las propiedades de cabecera de transporte.
  4. Emita llamadas de método remoto a través del objeto Stub o Call. Los valores de las cabeceras de transporte especificadas se recuperan del mensaje de respuesta y se colocan en HashMap.
    Si la propiedad no se establece correctamente, es posible que se produzcan errores de uso de la API que generen un error JAXRPCException. Deben cumplirse los siguientes requisitos o el proceso fallará:
    • El valor de la propiedad que se establece en el objeto Stub o Call debe ser null o una instancia de HashMap.
    • Las claves HashMap deben ser del tipo de datos String y no tener valores nulos.

Resultados

Tiene un servicio web JAX-RPC que puede recibir cabeceras de transporte de mensajes de respuesta entrantes.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_retrievecookie
File name: twbs_retrievecookie.html