Web-Service-Client für den Zugriff auf Ressourcen über einen Web-Proxy konfigurieren

Sie können einen Web-Service-Client für den Zugriff auf Ressourcen über einen Web-Proxy-Server konfigurieren.

Informationen zu diesem Vorgang

Sie können einen Web-Service-Client so konfigurieren, dass er auf Ressourcen zugreift, indem er wie andere HTTP-Clientanwendungen eine Verbindung zu einem Web-Proxy-Server mit oder ohne Authentifizierung herstellt. Sie können HTTP-Transporteigenschaften für einen Web-Service konfigurieren, der als Client für einen anderen Web-Service auftritt. Die HTTP-Transportwerte, die Sie konfigurieren, werden zur Laufzeit verwendet. Konfigurieren Sie die HTTP-Transportwerte auf einer der folgenden Arten:
  • Konfigurieren Sie die Eigenschaften in der Anzeige für angepasste JVM-Eigenschaften (Java™ Virtual Machine) in der Administrationskonsole.
  • Konfigurieren Sie die Eigenschaften mit dem Befehlszeilentool wsadmin.
  • Konfigurieren Sie die Eigenschaften mit einem Assembliertool.
  • Konfigurieren Sie die Eigenschaften über das Programm mit dem Anwendungsprogrammiermodell.

Wenn Sie die Eigenschaften über das Programm mit dem Programmiermodell Java API XML-based Remote Procedure Call (JAX-RPC) oder dem Programmiermodell Java API for XML Web Services (JAX-WS) konfigurieren möchten, sehen Sie sich die Spezifikation JAX-RPC bzw. JAX-WS an.

Eine vollständige Liste der unterstützten Standards und Spezifikationen finden Sie in der Dokumentation zu den Web-Service-Spezifikationen und den Anwendungsprogrammierschnittstellen.

Bei JAX-RPC-Web-Services (Java API XML-based Remote Procedure Call) sind die HTTP-Transporteigenschaften wie folgt nach Priorität geordnet, wobei der programmgesteuerten Methode die höchste Bedeutung zukommt:
  1. Werte, die über das Programm im Call-Objekt angegeben werden
  2. Werte, die in den Implementierungsdeskriptoren jedes Attributs portQNameBinding mit einem Assembliertool definiert werden
  3. Werte, die als JVM-Systemeigenschaften definiert werden

Bei JAX-WS-Web-Services (Java API for XML Web Services) haben die HTTP-Transporteigenschaften, die Sie in Ihren Richtliniensatzdefinitionen angeben, Vorrang vor den über das Programm definierten Werten. Danach haben die über das Programm definierten HTTP-Transportwerte Vorrang vor den Werte, die als JVM-Systemeigenschaften definiert werden. Für JAX-WS-Anwendungen werden keine Implementierungsdeskriptoren unterstützt. Verwenden Sie Annotationen, um die Implementierungsinformationen anzugeben.

Vorgehensweise

  1. Konfigurieren Sie die HTTP- bzw. HTTPS-Eigenschaften proxyHost und proxyPort für die Web-Services auf eine der folgenden Arten:
    • über die Anzeige für die angepassten JVM-Eigenschaften in der Administrationskonsole,
    • über das Befehlszeilentool wsadmin,
    • über Assembliertools,
    • über das Programm mit dem Anwendungsprogrammiermodell.
    Gehen Sie wie folgt vor, um über HTTP auf den Web-Proxy zuzugreifen:
    • http.proxyHost
    • http.proxyPort
    Gehen Sie wie folgt vor, um über HTTPS auf den Web-Proxy zuzugreifen:
    • https.proxyHost
    • https.proxyPort
  2. Wenn eine HTTP-Proxy-Authentifizierung für Ihren Web-Service-Client erforderlich ist, konfigurieren Sie außerdem die HTTP- bzw. HTTPS-Transporteigenschaften proxyUser und proxyPassword mit einer der im vorherigen Schritt angegebenen Methoden.
    Gehen Sie wie folgt vor, um über HTTP auf den Web-Proxy zuzugreifen:
    • http.proxyUser
    • http.proxyPassword
    Gehen Sie wie folgt vor, um über HTTPS auf den Web-Proxy zuzugreifen:
    • https.proxyUser
    • https.proxyPassword
  3. Wenn Sie die HTTP- bzw. HTTPS-Eigenschaften über das Programm angeben, setzen Sie die Eigenschaften in der Stub- oder Call-Instanz, um die HTTP-Proxy-Authentifizierung zu konfigurieren.
    1. Sie können die HTTP- bzw. HTTPS-Eigenschaften über das Programm mit den folgenden Web-Service-Konstanten setzen:
      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. Verwenden Sie in der Web-Service-Transportschicht die Tunnelung, damit der Web-Service-Client über einen Web-Proxy-Server auf Ressourcen zugreifen kann. Setzen Sie die angepasste JVM-Eigenschaft com.ibm.ws.websvcs.transport.enableProxyTunnel auf den Wert true.

Ergebnisse

Sie haben den Web-Service-Client so konfiguriert, dass er einen Web-Proxy für den Zugriff auf Ressourcen verwendet.

Optional können Sie die Eigenschaft http.nonProxyHosts setzen, um die Hostnamen von Maschinen anzugeben, an die keine Anforderungen über den Proxy-Server gesendet werden. Alle von der Clientanwendung aufgerufenen Anforderungen, die an einen Host gesendet werden, dessen Name in dieser Eigenschaft enthalten ist, werden nicht über den Proxy-Server übergeben. Diese Eigenschaft gilt für HTTP- und HTTPS-Verbindungen. Wenn Sie mehr über die Eigenschaft http.nonProxyHosts und andere HTTP-Eigenschaften, die Sie konfigurieren können, erfahren möchten, lesen Sie die Informationen zu angepassten HTTP-Transporteigenschaften für Web-Service-Anwendungen.

Beispiel

Mit dem folgenden Code können Sie den HTTP-Proxy über das Programm konfigurieren:
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");
Anmerkung: Für JAX-WS können Sie die HTTP- oder HTTPS-Eigenschaften über das Programm mit RequestContext von BindingProvider angeben, indem Sie den folgenden Code verwenden:
//https.proxyHost als Eigenschaft in RequestContext festlegen.
BindingProvider bp = (Binding Provider)port;
bp.getRequestContext().put("https.proxyHost", "proxyHost1.ibm.com");
bp.getRequestContext().put("https.proxyPort", "80");

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configwbsclient2webproxy
Dateiname:twbs_configwbsclient2webproxy.html