Aplicación del cumplimiento para los enlaces WSDL de los servicios web JAX-WS.

Puede añadir extensiones de enlace en el documento WSDL y, después, aplique las extensiones en las aplicaciones con soporte JAX-WS en Liberty.

Acerca de esta tarea

Liberty admite el uso de la extensión wsdl:binding que es necesaria en la especificación JAX-WS 2.2. Este tema describe cómo definir las extensiones WSDL y enlazarlas con el elemento de extensión personalizado en Liberty.

Procedimiento

  1. Defina un elemento de extensión y correlaciónelo con el usuario que se ha definido en la extensión WSDL. En el ejemplo siguiente se muestra cómo enlazar con la extensión WSDL {http://server.respectbinding.jaxws22/}goodBinding.
    @XmlRootElement(name = "goodBinding", namespace = "http://server.respectbinding.jaxws22/")
    public class GoodBindingElement implements ExtensibilityElement, Serializable {
        private String uri;
        private QName elementType = null;    
        private Boolean required = null;
        
        @XmlAttribute(name = "uri")
        public String getUri() {
            return this.uri;
        }
    
        @Override
        public QName getElementType() {
            return this.elementType;
        }
    
        @XmlAttribute(name = "required", namespace="http://schemas.xmlsoap.org/wsdl/")
        public Boolean getRequired() {
            return this.required;
        }
            
        public void setUri(String uri){
            this.uri = uri;
        }
    
        @Override
        public void setElementType(QName elementType) {
            this.elementType = elementType;
        }
    
        @Override
        public void setRequired(Boolean required) {
            this.required = required;
        }
    }
  2. Añadir el archivo extensions.xml en el directorio /META-INF de la web o aplicación EJB. Este archivo define dónde se pueden utilizar las extensiones en el documento WSDL. En el ejemplo siguiente, se añade una entrada para establecer la propiedad javax.wsdl.Binding como tipo de padre de la clase goodBindingElement en el archivo extensions.xml. La entrada también significa que la extensión {http://server.respectbinding.jaxws22/}goodBinding sólo se puede añadir bajo el elemento binding del documento WSDL.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    
    <properties>
    	<!-- Enlaces XML -->
    	<entry key="org.apache.cxf.bindings.xml-1">javax.wsdl.Binding=jaxws22.respectbinding.server.common.GoodBindingElement</entry>
    </properties>
  3. Añada la extensión {http://server.respectbinding.jaxws22/}goodBinding bajo el elemento binding como se indica a continuación:
    ...
      <binding name="EchoPortBinding" type="tns:Echo">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
        <tns:goodBinding wsdl:required="true" uri="http://good/good" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" />
        <operation name="echo">
          <soap:operation soapAction=""/>
          <input>
            <soap:body use="literal" />
          </input>
          <output>
            <soap:body use="literal" />
          </output>
          <fault name="Exception">
            <soap:fault name="Exception" use="literal"/>
          </fault>
        </operation>
      </binding>
      ...

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_dep_jaxws_extension.html