Procedimientos recomendados para las propiedades de cabecera de transporte
Puede establecer la propiedad REQUEST_TRANSPORT_PROPERTIES y la propiedad RESPONSE_TRANSPORT_PROPERTIES en un apéndice de cliente JAX-RPC (Java™ API for XML-based RPC), una instancia de llamada o una instancia RequestContext del BindingProvider de JAX-WS (Java API for XML-Based Web services) para habilitar un cliente de servicios web para enviar o recuperar las cabeceras de transporte.

Procedimientos recomendados para REQUEST_TRANSPORT_PROPERTIES
- Cada par nombre=valor incorporado en el valor de cabecera debe separarse por un punto y coma (;).
- Cada nombre y su valor deben separarse por un signo igual (=).
name1=value1;name2=value2;name3=value3
- La cabecera de solicitud de salida contiene un valor nombre.
En este caso, el nombre=valor de la correlación se ignora de forma silenciosa, lo que impide que se sobrescriba un cliente o que se modifiquen los valores para el valor nombre que ya están definidos en la cabecera de la solicitud de salida por parte del servidor o por parte del motor de servicios web.
- El valor de cabecera del usuario contiene varios valores nombre.
Si el valor de la cabecera del usuario contiene varios valores nombre, la primera aparición del valor nombre se utiliza y los otros valores se ignoran de forma silenciosa. Por ejemplo, si el valor de cabecera del usuario contiene name1=value1;name2=value2;name1=value3, donde existen dos apariciones de name1, se utiliza el primer valor, name1=value1. El otro, nombre1=valor3, se ignora de forma silenciosa.
Procedimientos recomendados para RESPONSE_TRANSPORT_PROPERTIES
Sólo se utilizan las claves de correlación; los valores de correlación se ignoran. Los valores se llenan en esta correlación recuperando las cabeceras de transporte, que corresponden a las claves de correlación del mensaje de respuesta de entrada. Una correlación vacía provoca que todas las cabeceras de transporte y los valores asociados se recuperen del mensaje de respuesta de entrada.
Cabeceras HTTP que se procesan bajo consideración especial
A continuación se proporcionan cabeceras HTTP que tienen un trato especial cuando envían y recuperan solicitudes y respuestas HTTP.
Los valores de estas cabeceras pueden establecerse de distintas formas. Por ejemplo, algunos valores de cabecera se envían en función de los valores que hay en un descriptor de despliegue o archivo de enlaces. En estos casos, el valor establecido a través de REQUEST_TRANSPORT_PROPERTIES altera temporalmente los valores establecidos de cualquier otra forma.
Cabecera | Enviar solicitud | Recuperar respuesta |
---|---|---|
Transfer-encoding |
|
No hay ningún proceso especial. |
Connection |
|
No hay ningún proceso especial. |
Expect |
|
No hay ningún proceso especial. |
Host | Se ignora | No hay ningún proceso especial. |
Content-type | Se ignora | No hay ningún proceso especial. |
SOAPAction | Se ignora | No hay ningún proceso especial. |
Content-length | Se ignora | No hay ningún proceso especial. |
Cookie A continuación se muestra una constante de tipo serie: com.ibm.websphere.webservices.Constants.HTTP_HEADER_COOKIE |
El valor se envía en la cabecera, si tiene la estructura correcta. Consulte la información para ver los valores del formato de cabecera y de correlación. | No hay ningún proceso especial. |
Cookie2 A continuación se muestra una constante de tipo serie: com.ibm.websphere.webservices.Constants.HTTP_HEADER_COOKIE2 |
Consulte la información en la entrada "Cookie". | No hay ningún proceso especial. |
Set-cookie A continuación se muestra una constante de tipo serie: com.ibm.websphere.webservices.Constants.HTTP_HEADER_SET_COOKIE |
No hay ningún proceso especial. | Si la propiedad MAINTAIN_SESSION se establece en true, todo el valor se guarda en SessionContext.CONTEXT_PROPERTY y se envía en solicitudes subsiguientes en la cabecera Cookie. Si desea más información, consulte la entrada Cookie en esta tabla. |
Set-cookie2 A continuación se muestra una constante de tipo serie: com.ibm.websphere.webservices.Constants.HTTP_HEADER_SET_COOKIE2 |
No hay ningún proceso especial. | Si la propiedad MAINTAIN_SESSION se establece en true, todo el valor se guarda en SessionContext.CONTEXT_PROPERTY y se envía en solicitudes subsiguientes en la cabecera Cookie. Si desea más información, consulte la entrada Cookie en esta tabla. |
Código de cliente de ejemplo
public class MyApplicationClass {
// Inyectar una instancia del tipo de puerto del servicio.
@WebServiceRef(EchoService.class)
private EchoPortType port;
// Este método invocará la operación del servicio web y enviará y recibirá las cabeceras de transporte.
public void invokeService() {
// Configure la correlación que contendrá las cabeceras de solicitud.
Map<String, Object>requestHeaders = new HashMap<String, Object>();
requestHeaders.put(“Cookie”, “ClientAuthenticationToken=FFEEBBCC”);
requestHeaders.put(“MyHeaderFlag”, new Boolean(true));
// Defina la correlación como una propiedad en RequestContext.
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(com.ibm.websphere.webservices.Constants.REQUEST_TRANSPORT_PROPERTIES, requestHeaders);
// Configure la correlación para recuperar las cabeceras de transporte del mensaje de respuesta.
Map<String, Object>responseHeaders = new HashMap<String, Object>();
responseHeaders.put(“Set-Cookie”, null);
responseHeaders.put(“MyHeaderFlag, null);
// Invoque la operación de servicios web.
String result = port.echoString(“Hello, world!”);
// Recupere las cabeceras de la respuesta.
String cookieValue = responseHeaders.get(“Set-Cookie”);
String headerFlag = responseHeaders.get(“MyHeaderFlag”);
}
}