Activation de propriétés de client de conduit HTTP et de propriétés personnalisées utilisateur

Vous pouvez définir les propriétés du client HTTP et les propriétés personnalisées utilisateur dans le fichier ibm-ws-bnd.xml pour les applications JAX-WS sous Liberty.

Avant de commencer

Le fichier ibm-ws-bnd.xml doit se trouver dans le répertoire /WEB-INF d'une application de services web basées sur le web (fichier WAR), ou dans le répertoire /META-INF d'une application de service web basée sur EJB (fichier JAR). Si le client s'exécute dans clientContainer, le fichier ibm-ws-bnd.xml doit figurer dans répertoire /META-INF du fichier JAR dans le fichier JAR du client EAR.

Pourquoi et quand exécuter cette tâche

Les propriétés de client HTTP et les propriétés personnalisées utilisateur peuvent être définies avec les éléments service-ref et port dans le fichier ibm-ws-bnd.xml pour le client de service spécifique ou le port qui a été injecté par l'annotation @WebServiceRef. Les propriétés qui figurent dans l'élément port remplacent les mêmes propriétés qui figurent dans l'élément service-ref.
Propriétés de client HTTP
Les propriétés de client HTTP ci-après sont prises en charge dans le profil Liberty ; elles doivent avoir le préfixe http.conduit.client.. Exemple :http.conduit.client.ConnectionTimeout. Elles ne sont valides que lors de l'envoi ou de la réception de messages SOAP et ne sont pas applicables lors de la connexion à une adresse URL WSDL.
  • ConnectionTimeout
  • ReceiveTimeout
  • AsyncExecuteTimeout
  • AsyncExecuteTimeoutRejection
  • AutoRedirect
  • MaxRetransmits
  • AllowChunking
  • ChunkingThreshold
  • Connection
  • DecoupledEndpoint
  • ProxyServer
  • ProxyServerPort
  • ProxyServerType
  • NonProxyHosts
Pour plus d'informations sur ces propriétés, voir le schéma de configuration HTTP dans Apache CFX et la rubrique Client HTTP Transport (including SSL support).
Propriétés personnalisées utilisateur
En plus des propriétés de client HTTP prises en charge dans Liberty, vous pouvez définir les propriétés personnalisées utilisateur pouvant être utilisées dans votre application et extraire ces propriétés depuis le contexte de demande du client. Tous les attributs définis dans l'élément properties seront placés dans le contexte de demande du client de service.

Pour tous les éléments disponibles que vous pouvez configurer dans le fichier ibm-ws-bnd.xml, voir Liberty : Fichier ibm-ws-bnd.xml.

Procédure

  1. Configurez les propriétés de canal de communication HTTP. Les exemples ci-après expliquent comment configurer les propriétés de client HTTP ConnectionTimeout et ReceiveTimeout dans le fichier ibm-ws-bnd.xml. L'exemple ci-dessous explique comment appliquer les propriétés de client HTTP ConnectionTimeout et ReceiveTimeout pour tous les ports du client de service injecté à l'aide de @WebServiceRef(name="service/SimpleEchoService") ; pour le port SimpleEchoPort, la valeur de la propriété personnalisée utilisateur vendor est également appliquée.
    <?xml version="1.0" encoding="UTF-8"?>
    <webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" 
    		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    		xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd"
    		version="1.0">
    	<service-ref name="service/SimpleEchoService">
    		<port name="SimpleEchoPort">
    			<properties vendor="IBM" />
    		</port>
    		<properties http.conduit.client.ConnectionTimeout="10000" 
    			http.conduit.client.ReceiveTimeout="15000" />
    	</service-ref>
    	...
    </webservices-bnd>
  2. Extrayez les propriétés définies dans le fichier ibm-ws-bnd.xml du contexte de requête du client injecté par l'annotation @WebServiceRef(name="service/SimpleEchoService") comme suit.
    @WebServiceRef(name="service/SimpleEchoService")
    private EchoService echoService;
       ...
    Echo echo = echoService.getEchoPort();
    BindingProvider bp = (BindingProvider)echo;
    String connTimeout = bp.getRequestContext().get("http.conduit.client.ConnectionTimeout").toString(); 
    String recTimeout = bp.getRequestContext().get("http.conduit.client.ReceiveTimeout").toString(); 
    String vendor = bp.getRequestContext().get("vendor").toString(); 
    		...

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



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