Configuration d'un client de services Web pour accéder à des ressources à l'aide d'un proxy Web

Vous pouvez configurer un client de services Web pour accéder à des ressources via un serveur de proxy Web.

Pourquoi et quand exécuter cette tâche

Vous pouvez configurer un client de services Web pour accéder à des ressources en vous connectant à un serveur de proxy Web avec ou sans demande d'authentification, tout comment d'autres applications client HTTP. Vous pouvez configurer les propriétés de transport HTTP pour un service Web servant de client pour un autre. Les valeurs de transport HTTP que vous configurez sont utilisées au moment de l'exécution. Configurez-les de l'une des façons suivantes :
  • Configurez les propriétés en utilisant le panneau des propriétés personnalisées JVM (Java™ Virtual Machine) de la console d'administration.
  • Configurez-les à l'aide de l'outil de ligne de commande wsadmin.
  • Configurez-les avec un outil d'assemblage.
  • Configurez-les par programmation à l'aide du modèle de programmation d'applications.

Pour configurer les propriétés par programme à l'aide du modèle de programmation JAX-RPC (Java API XML-based Remote Procedure Call) ou JAX-WS (Java API for XML Web Services), consultez les spécifications JAX-RPC ou JAX-WS.

Pour obtenir la liste complète des normes et spécifications prises en charge, voir les spécifications des services Web et la documentation des API.

Si les services concernés sont des services Web JAX-RPC (Java API XML-based Remote Procedure Call), les valeurs de transport HTTP sont définies suivant la règle de priorité ci-après, sachant que la méthode de programmation est la plus importante.
  1. valeurs indiquées par programmation dans l'objet Call
  2. valeurs définies dans les descripteurs de déploiement de chaque attribut portQNameBinding en utilisant un outil d'assemblage
  3. valeurs définies comme propriétés système de la machine virtuelle Java

Si les services Web concernés sont des services JAX-WS (Java API for XML Web Services), les valeurs de transport HTTP spécifiées dans les définitions de l'ensemble de règles ont priorité sur celles définies par programme. De la même façon, les valeurs de transport HTTP définies par programmation l'emportent sur les valeurs définies comme propriétés système de la machine virtuelle Java. Pour les applications JAX-WS, les descripteurs de déploiement ne sont pas pris en charge. Utilisez des annotations pour indiquer les informations de déploiement.

Procédure

  1. Configurez les propriétés de transport HTTP ou HTTPS proxyHost et proxyPort pour les services Web de l'une des façons suivantes :
    • dans le panneau des propriétés personnalisées JVM (Java Virtual Machine) de la console d'administration
    • à l'aide de l'outil de ligne de commande wsadmin,
    • avec des outils d'assemblage,
    • par programmation à l'aide du modèle de programmation d'applications.
    Pour accéder au proxy Web sur HTTP :
    • http.proxyHost
    • http.proxyPort
    Pour accéder au proxy Web sur HTTPS :
    • https.proxyHost
    • https.proxyPort
  2. Si l'authentification du proxy HTTP est obligatoire pour votre client de services Web, configurez aussi les propriétés de transport HTTP ou HTTPS proxyUser et proxyPassword avec l'une des méthodes indiquées à l'étape précédente.
    Pour accéder au proxy Web sur HTTP :
    • http.proxyUser
    • http.proxyPassword
    Pour accéder au proxy Web sur HTTPS :
    • https.proxyUser
    • https.proxyPassword
  3. Si vous indiquez les propriétés HTTP ou HTTPS par programmation, définissez-les dans l'instance Stub ou Call pour configurer l'authentification du proxy HTTP.
    1. Vous pouvez définir les propriétés HTTP ou HTTPS par programmation à l'aide des constantes de services Web suivantes :
      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. Utilisez la tunnellisation dans la couche de transport des services Web afin d'accéder aux ressources via un serveur proxy Web. Attribuez la valeur true à la propriété de machine virtuelle Java (JVM), com.ibm.ws.websvcs.transport.enableProxyTunnel.

Résultats

Vous avez configuré votre client de services Web pour utiliser un serveur proxy Web afin d'accéder à des ressources.

Vous pouvez éventuellement définir la propriété http.nonProxyHosts pour indiquer les noms d'hôtes des machines auxquelles les demandes ne seront pas envoyées via le serveur proxy. Toutes les demandes appelées par l'application client et envoyées à un hôte dont le nom figure dans cette propriété ne passeront pas par le serveur proxy. Cette propriété s'applique pour les connexions HTTP et HTTPS. Pour en savoir plus sur la propriété http.nonProxyHosts et d'autres propriétés HTTP configurables, voir la documentation sur les propriétés personnalisées de transport HTTP pour des applications de services Web.

Exemple

Le code suivant vous permet de configurer le proxy HTTP par programmation :
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");
Remarque : Pour JAX-WS, le code suivant vous permet d'indiquer à l'aide d'un programme les propriétés HTTP ou HTTPS avec le contexte de demande RequestContext de BindingProvider :
//Définir https.proxyHost comme propriété sur RequestContext.
BindingProvider bp = (Binding Provider)port;
bp.getRequestContext().put("https.proxyHost", "proxyHost1.ibm.com");
bp.getRequestContext().put("https.proxyPort", "80");

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configwbsclient2webproxy
Nom du fichier : twbs_configwbsclient2webproxy.html