Configuring a Web services client to access resources using a Web proxy

You can configure a Web services client to access resources through a Web proxy server.

About this task

You can configure a Web services client to access resources by connecting to a Web proxy server either with or without requiring authentication, just like other HTTP client applications. You can configure HTTP transport properties for a Web service acting as a client to another Web service. The HTTP transport values you configure are used at runtime. Configure the HTTP transport values in one of the following ways:
  • Configure the properties using the Java™ Virtual Machine (JVM) custom property panel in the administrative console.
  • Configure the properties using the wsadmin command-line tool.
  • Configure the properties with an assembly tool.
  • Configure the properties programmatically using the application programming model

If you want to programmatically configure the properties using the Java API XML-based Remote Procedure Call (JAX-RPC) programming model or the Java API for XML Web Services (JAX-WS) programming model, review the JAX-RPC or JAX-WS specifications.

For a complete list of the supported standards and specifications, see the Web services specifications and API documentation.

For Java API XML-based Remote Procedure Call (JAX-RPC) Web services, the HTTP transport values take the following precedence order with the programmatic method being the most significant:
  1. values specified programmatically on the Call object
  2. values defined in the deployment descriptors in each portQNameBinding attribute using an assembly tool
  3. values defined as JVM system properties

For Java API for XML Web Services (JAX-WS) Web services, the HTTP transport values you specify in your policy set definitions take precedence over the values defined programmatically. Subsequently, the HTTP transport values you define programmatically take precedence over the values defined as JVM system properties. For JAX-WS applications, deployment descriptors are not supported. Use annotations to specify deployment information.

Procedure

  1. Configure the HTTP or HTTPS proxyHost and proxyPort transport properties for the Web services in one of the following ways:
    • using the Java Virtual Machine (JVM) custom property panel in the administrative console
    • using the wsadmin command-line tool
    • using assembly tools
    • programmatically using the application programming model
    To access the Web proxy over HTTP:
    • http.proxyHost
    • http.proxyPort
    To access the Web proxy over HTTPS:
    • https.proxyHost
    • https.proxyPort
  2. If HTTP proxy authentication is required for your Web services client, then additionally configure the HTTP or HTTPS proxyUser and proxyPassword transport properties using one of the methods specified in the previous step.
    To access the Web proxy over HTTP:
    • http.proxyUser
    • http.proxyPassword
    To access the Web proxy over HTTPS:
    • https.proxyUser
    • https.proxyPassword
  3. If you are specifying the HTTP or HTTPS properties programmatically, set the properties in the Stub or Call instance to configure the HTTP proxy authentication.
    1. You can set the HTTP or HTTPS properties programmatically using the following Web services constants:
      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

Results

You have configured your Web services client to use a Web proxy server to access resources.

You can optionally set the http.nonProxyHosts property to specify the host names of machines to which requests will not be sent through the proxy server. Any requests invoked by the client application that are sent to a host whose name is contained in this property will not pass through the proxy server. This property applies for both HTTP and HTTPS connections. To learn more about the http.nonProxyHosts property and other HTTP properties that you can configure, read about HTTP transport custom properties for Web services applications.

Example

Configuring the HTTP proxy programmatically

The following code allows you to configure the HTTP proxy programmatically:
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");



In this information ...


Related information

IBM Redbooks, demos, education, and more

(Index)

Use IBM Suggests to retrieve related content from ibm.com and beyond, identified for your convenience.

This feature requires Internet access.

Task topic    

Terms of Use | Feedback

Last updated: Oct 21, 2010 7:37:48 AM CDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=v701sca&product=was-nd-mp&topic=twbs_configwbsclient2webproxy
File name: twbs_configwbsclient2webproxy.html