Vous pouvez ajouter des extensions de liaison dans le document WSDL, puis appliquer les extensions
dans vos applications avec le support JAX-WS sous Liberty.
Pourquoi et quand exécuter cette tâche
Liberty prend en charge l'utilisation de l'extension wsdl:binding, qui est requise dans la spécification
JAX-WS 2.2. Cette rubrique explique comment définir les extensions WSDL et comment les lier à l'élément d'extensibilité personnalisé dans Liberty.
Procédure
- Définissez un élément d'extensibilité et mappez-le avec l'utilisateur qui est défini dans l'extension WSDL. L'exemple suivant montre comment établir une liaison avec
l'extension WSDL extension {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;
}
}
- Ajoutez le fichier extensions.xml dans le répertoire /META-INF de votre application Web ou EJB. Ce fichier définit l'endroit où les extensions peuvent être utilisées dans le document WSDL. Dans l'exemple suivant, une entrée permettant de définir la propriété
javax.wsdl.Binding comme type parent de la classe
goodBindingElement est ajoutée au fichier extensions.xml. L'entrée signifie également que l'extension
{http://server.respectbinding.jaxws22/}goodBinding ne peut être ajoutée que sous l'élément
binding dans le document WSDL.
<?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>
- Ajoutez l'extension {http://server.respectbinding.jaxws22/}goodBinding sous l'élément binding comme suit :
...
<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>
...