Einhaltung von WSDL-Bindungen in JAX-WS-Web-Services erzwingen

Sie können Bindungserweiterungen zum WSDL-Dokument hinzufügen, die Erweiterungen dann in Ihren Anwendungen mit JAX-WS-Unterstützung für Liberty anwenden.

Informationen zu diesem Vorgang

Liberty unterstützt die Verwendung der Erweiterung wsdl:binding, die in der Spezifikation "JAX-WS 2.2" erforderlich ist. Dieser Artikel beschreibt, wie WSDL-Erweiterungen definiert und mit dem angepassten Erweiterbarkeitselement in Liberty gebunden werden.

Vorgehensweise

  1. Definieren Sie ein Erweiterbarkeitselement und ordnen Sie es dem Benutzer zu, der in der WSDL-Erweiterung definiert ist. Das folgende Beispiele zeigt, wie eine Bindung mit der WSDL-Erweiterung {http://server.respectbinding.jaxws22/}goodBinding durchgeführt wird.
    @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. Fügen Sie die Datei extensions.xml dem Verzeichnis /META-INF Ihrer Web- oder EJB-Anwendung hinzu. Diese Datei definiert, wo die Erweiterungen im WSDL-Dokument verwendet werden können. Im folgenden Beispiel wird ein Eintrag, mit dem die Eigenschaft javax.wsdl.Binding als übergeordneter Typ der Klasse goodBindingElement gesetzt wird, in der Datei extensions.xml hinzugefügt. Der Eintrag bedeutet auch, dass die Erweiterung {http://server.respectbinding.jaxws22/}goodBinding nur unter dem binding-Element im WSDL-Dokument hinzugefügt werden kann.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    
    <properties>
    		<!-- XML Binding -->
    		<entry key="org.apache.cxf.bindings.xml-1">javax.wsdl.Binding=jaxws22.respectbinding.server.common.GoodBindingElement</entry>
    </properties>
  3. Fügen Sie die Erweiterung {http://server.respectbinding.jaxws22/}goodBinding unter dem Element binding wie folgt hinzu:
    ...
      <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>
      ...

Symbol das den Typ des Artikels anzeigt. Taskartikel



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