Boas Práticas de Propriedades do Cabeçalho de Transporte
É possível configurar a propriedade REQUEST_TRANSPORT_PROPERTIES e a propriedade RESPONSE_TRANSPORT_PROPERTIES em um Stub de cliente Java™ API for XML-based RPC (JAX-RPC), uma instância Chamar ou uma instância RequestContext de BindingProvider doJava API for XML-Based Web Services (JAX-WS) para permitir que um cliente de serviços da Web envie ou recupere os cabeçalhos de transporte.

Boas Práticas do REQUEST_TRANSPORT_PROPERTIES
- Cada par name=value incluído no valor do cabeçalho deve ser separado por um ponto-e-vírgula (;).
- Cada name e seu valor devem ser separados por um sinal de igual (=).
name1=value1;name2=value2;name3=value3
- O cabeçalho da solicitação realizada contém um valor nome.
Nesse caso, o name=value a partir do Mapa é ignorado silenciosamente, impedindo que um cliente sobrescreva ou modifique valores a partir do valor name que já esteja configurado no cabeçalho de solicitação realizada pelo servidor ou mecanismo de serviços da Web.
- O valor do cabeçalho do usuário contém diversos valores nome.
Quando o valor do cabeçalho do usuário contém vários valores name, a primeira ocorrência do valor name será usada e os outras são ignoradas silenciosamente. Por exemplo, se o valor do cabeçalho do usuário contiver name1=value1;name2=value2;name1=value3, em que há duas ocorrências de name1, o primeiro valor, name1=value1, será usado. O outro valor, name1=value3, é ignorado de forma silenciosa.
Boas Práticas do RESPONSE_TRANSPORT_PROPERTIES
Apenas as chaves de Mapa são usadas; os valores de Mapa são ignorados. Os valores são preenchidos nesse Mapa ao recuperar os cabeçalhos de transporte que correspondem às chaves de Mapa a partir da mensagem de resposta recebida. Um Mapa vazio faz com que todos os cabeçalhos de transporte e valores associados sejam recuperados a partir da mensagem de resposta recebida.
Cabeçalhos HTTP que São Processados Sob Considerações Especiais
Os cabeçalhos HTTP a seguir têm considerações especiais ao enviar e recuperar respostas e pedidos HTTP.
Os valores desses cabeçalhos podem ser definidos de várias formas. Por exemplo, alguns valores de cabeçalho são enviados com base em definições de um descritor de implementação ou arquivo de ligação. Nesses casos, o valor definido por meio de REQUEST_TRANSPORT_PROPERTIES substitui os valores definidos de outra forma.
Cabeçalho | Enviar Solicitação | Recuperar Resposta |
---|---|---|
Transfer-encoding |
|
Não há processamento especial. |
Conexão |
|
Não há processamento especial. |
Expect |
|
Não há processamento especial. |
Host | Ignorado | Não há processamento especial. |
Content-type | Ignorado | Não há processamento especial. |
SOAPAction | Ignorado | Não há processamento especial. |
Content-length | Ignorado | Não há processamento especial. |
Cookie A seguir é apresentada uma constante de Cadeia: com.ibm.websphere.webservices.Constants.HTTP_HEADER_COOKIE |
O valor é enviado no cabeçalho se for estruturado corretamente. Consulte as informações sobre Formato do Valor de Cabeçalho e Valores de Mapa. | Não há processamento especial. |
Cookie2 A seguir é apresentada uma constante de Cadeia: com.ibm.websphere.webservices.Constants.HTTP_HEADER_COOKIE2 |
Consulte as informações na entrada "Cookie". | Não há processamento especial. |
Set-cookie A seguir é apresentada uma constante de Cadeia: com.ibm.websphere.webservices.Constants.HTTP_HEADER_SET_COOKIE |
Não há processamento especial. | Se a propriedade MAINTAIN_SESSION for definida para true, o valor inteiro será salvo em SessionContext.CONTEXT_PROPERTY e será enviado em pedidos subsequentes no cabeçalho Cookie. Consulte a entrada Cookie desta tabela para obter informações adicionais. |
Set-cookie2 A seguir é apresentada uma constante de Cadeia: com.ibm.websphere.webservices.Constants.HTTP_HEADER_SET_COOKIE2 |
Não há processamento especial. | Se a propriedade MAINTAIN_SESSION for definida para true, o valor inteiro será salvo em SessionContext.CONTEXT_PROPERTY e será enviado em pedidos subsequentes no cabeçalho Cookie. Consulte a entrada Cookie desta tabela para obter informações adicionais. |
Código do Cliente de Exemplo
public class MyApplicationClass {
// Injetar uma instância do tipo de porta de serviço.
@WebServiceRef(EchoService.class)
private EchoPortType port;
// Esse método chamará a operação de serviço da web e enviará e receberá cabeçalhos de transporte.
public void invokeService() {
// Configurar o Mapa que conterá os cabeçalhos da solicitação.
Map<String, Object>requestHeaders = new HashMap<String, Object>();
requestHeaders.put(“Cookie”, “ClientAuthenticationToken=FFEEBBCC”);
requestHeaders.put(“MyHeaderFlag”, new Boolean(true));
// Configurar o Mapa como uma propriedade no RequestContext.
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(com.ibm.websphere.webservices.Constants.REQUEST_TRANSPORT_PROPERTIES, requestHeaders);
// Configurar o Mapa para recuperar cabeçalhos de transporte da mensagem de resposta.
Map<String, Object>responseHeaders = new HashMap<String, Object>();
responseHeaders.put(“Set-Cookie”, null);
responseHeaders.put(“MyHeaderFlag, null);
// Chamar a operação de serviços da web.
String result = port.echoString(“Hello, world!”);
// Recuperar os cabeçalhos da resposta.
String cookieValue = responseHeaders.get(“Set-Cookie”);
String headerFlag = responseHeaders.get(“MyHeaderFlag”);
}
}