Habilitación de propiedades de cliente de conducto HTTP y propiedades personalizadas de usuario

Puede definir las propiedades de cliente HTTP y las propiedades personalizadas de usuario utilizando el archivo ibm-ws-bnd.xml para las aplicaciones JAX-WS en Liberty.

Antes de empezar

El archivo ibm-ws-bnd.xml debe estar en el directorio /WEB-INF de aplicaciones de servicios web (archivo WAR) basadas en web, o en el directorio /META-INF de una aplicación de servicios web (archivo JAR) basada en EJB. Si el cliente se ejecuta en clientContainer, el archivo ibm-ws-bnd.xml debe estar en el directorio /META-INF del archivo JAR en el EAR de cliente.

Acerca de esta tarea

Se pueden definir las propiedades de cliente HTTP y las propiedades personalizadas de usuario mediante los elementos service-ref y port del archivo ibm-ws-bnd.xml para el puerto o cliente de servicio específico introducido por la anotación @WebServiceRef. Las propiedades del elemento port alteran temporalmente las mismas propiedades del elemento service-ref.
Propiedades de cliente HTTP
Se admiten las propiedades de cliente HTTP siguientes en el perfil Liberty; estas propiedades deben tener el prefijo http.conduit.client.. Por ejemplo: http.conduit.client.ConnectionTimeout. Esas propiedades de cliente HTTP son válidas solo al enviar o recibir los mensajes SOAP y no son aplicables al conectar a un URL WSDL.
  • ConnectionTimeout
  • ReceiveTimeout
  • AsyncExecuteTimeout
  • AsyncExecuteTimeoutRejection
  • AutoRedirect
  • MaxRetransmits
  • AllowChunking
  • ChunkingThreshold
  • Connection
  • DecoupledEndpoint
  • ProxyServer
  • ProxyServerPort
  • ProxyServerType
  • NonProxyHosts
Si desea más información sobre estas propiedades, consulte Esquema de configuración HTTP de Apache CXF y Transporte del cliente HTTP (incluido el soporte SSL).
Propiedades personalizadas de usuario
Además de las propiedades de cliente HTTP admitidas en Liberty, puede definir las propiedades personalizadas de usuario que se podrían utilizar en la aplicación y recuperar estas propiedades del contexto de solicitud de cliente. Todos los atributos definidos en el elemento properties se pondrán en el contexto de solicitud de cliente de servicio.

Para obtener todos los elementos disponibles que puede configurar en el archivo ibm-ws-bnd.xml, consulte Liberty: El archivo ibm-ws-bnd.xml.

Procedimiento

  1. Configure las propiedades de conducto HTTP. En los ejemplos siguientes se muestra cómo configurar las propiedades de cliente HTTP ConnectionTimeout y ReceiveTimeout en el archivo ibm-ws-bnd.xml. En el ejemplo siguiente se muestra cómo aplicar las propiedades de cliente HTTP ConnectionTimeout y ReceiveTimeout para todos los puertos del cliente de servicio introducidos mediante @WebServiceRef(name="service/SimpleEchoService"), y para el puerto SimpleEchoPort, se aplica también el valor de la propiedad personalizada vendor.
    <?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. A continuación, recupere las propiedades definidas en el archivo ibm-ws-bnd.xml desde el contexto de solicitud del cliente de la anotación @WebServiceRef(name="service/SimpleEchoService") como se indica en el ejemplo siguiente.
    @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(); 
    		...

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_dep_jaxws_http_conduit.html