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
- 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;
}
}
- 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-Bindung -->
<entry key="org.apache.cxf.bindings.xml-1">javax.wsdl.Binding=jaxws22.respectbinding.server.common.GoodBindingElement</entry>
</properties>
- 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>
...