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
- 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.
- valeurs indiquées par programmation dans l'objet Call
- valeurs définies dans les descripteurs de déploiement de chaque attribut portQNameBinding en utilisant un outil d'assemblage
- 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
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
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");
//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");