Vous pouvez utiliser le fichier ibm-ws-bnd.xml afin de personnaliser des noeuds finaux de services Web pour le fournisseur de services et le client dans vos applications.
Avant de commencer
Le fichier ibm-ws-bnd.xml doit se trouver dans le répertoire /WEB-INF d'une application de services web basées sur le
web (fichier WAR), ou dans le répertoire /META-INF d'une application de service web basée sur EJB
(fichier JAR). Si le client s'exécute dans clientContainer, le fichier
ibm-ws-bnd.xml doit figurer dans répertoire
/META-INF du fichier JAR dans le fichier JAR du
client EAR.
Pourquoi et quand exécuter cette tâche
En configurant le fichier ibm-ws-bnd.xml, vous pouvez remplacer les configurations d'adresse de service Web
pour le fournisseur de services et le consommateur, exporter vos services Web en utilisant une adresse URL spécifique dans vos applications
qui sont déployées sous Liberty, et importer les services Web depuis des applications client JAX-WS.
Pour tous les éléments disponibles que vous pouvez configurer dans le fichier ibm-ws-bnd.xml, voir Liberty : Fichier ibm-ws-bnd.xml.
Procédure
- Remplacez les liaisons de services Web pour les fournisseurs de services.
- Remplacez l'adresse de noeud final de service Web. Dans l'élément webservice-endpoint, vous pouvez remplacer l'adresse de noeud final d'un noeud final de service Web identifié par l'attribut port-component-name. L'attribut address spécifie le chemin d'accès relatif à la racine de contexte de votre application.
<?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">
<!-- 0 to many endpoint descriptions -->
<webservice-endpoint port-component-name="Hello" address="/hiService" />
</webservices-bnd>
- Remplacez la racine de contexte pour les services Web reposant sur un EJB. Si le service Web est un service web basé sur EJB et défini dans
une application EJB (archive JAR), la racine de contexte par défaut est le
nom jar EJB. Toutefois, vous pouvez remplacer la valeur par défaut à l'aide de l'attribut context-root de l'élément http-publishing.
<?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">
<!-- optional http publishing module overrides -->
<http-publishing context-root="/HiServer" />
</webservices-bnd>
Remarque : L'attribut context-root n'a d'effet que lorsque le service Web est un service Web reposant sur un EJB et qu'il est défini dans une archive JAR d'EJB. Si le service Web est défini dans une application Web (archive WAR), même s'il s'agit d'un service Web reposant sur un EJB, l'attribut context-root de l'élément http-publishing est ignoré et la racine de contexte est toujours celle de l'application Web.
- Remplacez les liaisons de services Web pour les applications client.
- Remplacez l'emplacement du document WSDL. Dans l'élément service-ref, vous pouvez remplacer l'emplacement WSDL d'une référence de service Web dans une application client de service Web.
<?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="services/hello" wsdl-location="http://localhost:9080/HiServer/hiService?wsdl" />
</webservices-bnd>
L'attribut wsdl-location spécifie un URI absolu (protocole HTTP ou file) et peut aussi être un URI relatif à la racine de l'application client. Par
exemple :<?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="services/hello" wsdl-location="WEB-INF/wsdl/hiService.wsdl" />
</webservices-bnd>
- Remplacez l'adresse de port. Dans l'élément port, vous pouvez remplacer l'adresse d'un port dans une référence de service Web dans un client de service Web.
<?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="services/hello" wsdl-location="WEB-INF/wsdl/hiService.wsdl">
<port name="HelloPort" namespace="http://server.ejb.hello.sample.jaxws.ws.ibm.com/"
address="http://localhost:9080/HiServer/hiService" />
</service-ref>
</webservices-bnd>
L'attribut address de l'élément port spécifie l'URI absolu d'un port de service Web. Si le service Web référencé ne possède qu'un port, vous pouvez utiliser l'attribut port-address de l'élément service-ref. Par
exemple :<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="services/hello"
port-address="http://localhost:9080/HiServer/hiService" />
</webservices-bnd>
Remarque : Si l'attribut port-address de l'élément service-ref et l'attributaddress de l'élément port sont tous les deux spécifiés, l'attribut address de l'élément port est appliqué.