Configurando um Cliente de Serviços da Web para Acessar Recursos Usando um Proxy da Web

É possível configurar um cliente de serviços da Web para acessar recursos por meio de um servidor proxy da Web.

Sobre Esta Tarefa

É possível configurar um cliente de serviços da Web para acessar recursos por meio de conexão com um servidor proxy da Web com ou sem solicitação de autenticação, assim como outros aplicativos clientes HTTP. É possível configurar propriedades de transporte HTTP para um serviço da Web que esteja agindo como um cliente para outro serviço da Web. Os valores de transporte HTTP que você configura são utilizados no tempo de execução. Configure os valores de transporte HTTP de uma das seguintes maneiras:
  • Configure as propriedades utilizando o painel de propriedade customizada da JVM (Java™ Virtual Machine) no console administrativo.
  • Configure as propriedades utilizando a ferramenta de linha de comandos wsadmin.
  • Configure as propriedades com uma ferramenta de montagem.
  • Configure as propriedades programaticamente utilizando o modelo de programação de aplicativo.

Para configurar programaticamente as propriedades utilizando o modelo de programação JAX-RPC (Java API XML-based Remote Procedure Call) ou o modelo de programação JAX-WS (Java API for XML Web Services), revise as especificações JAX-RPC ou JAX-WS.

Para obter uma lista completa de padrões e especificações suportados, consulte as especificações de serviços da Web e a documentação da API.

Para serviços da Web Java API XML-based Remote Procedure Call (JAX-RPC), os valores de transporte HTTP consideram a seguinte ordem de precedência com o método programático sendo o mais significante:
  1. valores especificados programaticamente no objeto de Chamada
  2. valores definidos nos descritores de implementação em cada atributo portQNameBinding utilizando uma ferramenta de montagem
  3. valores definidos como propriedades de sistemas JVM

Para serviços da Web Java API for XML Web Services (JAX-WS), os valores de transporte HTTP que você especifica nas suas definições do conjunto de políticas têm precedência sobre os valores definidos programaticamente. Subsequentemente, os valores de transporte HTTP que você define programaticamente têm precedência sobre os valores definidos como propriedades do sistema JVM. Para aplicativos JAX-WS, descritores de implementação não são suportados. Utilize anotações para especificar informações de implementação.

Procedimento

  1. Configure as propriedades de transporte proxyHost e proxyPort HTTP ou HTTPS para os serviços da Web de uma das seguintes maneiras:
    • utilizando o painel de propriedade customizada da JVM (Java Virtual Machine) no console administrativo
    • utilizando a ferramenta de linha de comandos wsadmin
    • utilizando ferramentas de montagem
    • utilizando programaticamente o modelo de programação de aplicativo
    Para acessar o proxy da Web sobre HTTP:
    • http.proxyHost
    • http.proxyPort
    Para acessar o proxy da Web sobre HTTPS:
    • https.proxyHost
    • https.proxyPort
  2. Se a autenticação proxy HTTP é necessária para o seu cliente de serviços da Web, então configure adicionalmente as propriedades de transporte proxyUser e proxyPassword HTTP ou HTTPS usando um dos métodos especificados na etapa anterior.
    Para acessar o proxy da Web sobre HTTP:
    • http.proxyUser
    • http.proxyPassword
    Para acessar o proxy da Web sobre HTTPS:
    • https.proxyUser
    • https.proxyPassword
  3. Se você estiver especificando as propriedades HTTP ou HTTPS programaticamente, defina as propriedades na instância Stub ou Call para configurar a autenticação de proxy HTTP.
    1. É possível configurar as propriedades HTTP ou HTTPS programaticamente usando as seguintes constantes de serviços da Web:
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYHOST_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYPORT_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYUSER_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYPASSWORD_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYHOST_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYPORT_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYUSER_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYPASSWORD_PROPERTY
  4. Use o tunelamento na camada de transporte de serviço da web para ativar o cliente de serviços da web para acessar recursos por meio de um servidor proxy da web. Configure a propriedade da Java Virtual Machine (JVM), com.ibm.ws.websvcs.transport.enableProxyTunnel com um valor igual a true.

Resultados

Você configurou o seu cliente de serviços da Web para usar um servidor proxy da Web para acessar recursos.

Como opção, você pode definir a propriedade http.nonProxyHosts para especificar os nomes de host das máquinas às quais pedidos não serão enviados por meio do servidor proxy. Nenhum pedido chamado pelo aplicativo cliente que for enviado a um host cujo nome esteja contido nessa propriedade passará pelo servidor proxy. Essa propriedade se aplica a conexões HTTP e HTTPS. Para saber mais sobre a propriedade http.nonProxyHosts e outras propriedades HTTP que você pode configurar, leia sobre as propriedades customizadas de transporte HTTP para aplicativos de serviços da Web.

Exemplo

O código a seguir permite configurar o proxy HTTP programaticamente:
import com.ibm.wsspi.webservices.Constants
Properties prop = new Properties();
InitialContext ctx = new InitialContext(prop);
Service service = (Service)ctx.lookup("java:comp/env/service/StockQuoteService");
QName portQname = new QName("http://httpchannel.test.wsfvt.ws.ibm.com", "StockQuoteHttp");
StockQuote sq = (StockQuote)service.getPort(portQname, StockQuote.class);
((javax.xml.rpc.Stub) sq)._setProperty(Constants.HTTP_PROXYHOST_PROPERTY, "proxyHost1.ibm.com");
((javax.xml.rpc.Stub) sq)._setProperty(Constants.HTTP_PROXYPORT_PROPERTY, "80");
Nota: Para o JAX-WS, o código a seguir permite especificar as propriedades de HTTP ou HTTPS programaticamente com RequestContext de BindingProvider:
//Configure https.proxyHost como uma propriedade em RequestContext.
BindingProvider bp = (Binding Provider)port;
bp.getRequestContext().put("https.proxyHost", "proxyHost1.ibm.com");
bp.getRequestContext().put("https.proxyPort", "80");

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configwbsclient2webproxy
Nome do arquivo: twbs_configwbsclient2webproxy.html