Après avoir créé un point de terminaison de Service Web, soit manuellement ou à l'aide d'annotations de JAX-WS, vous pouvez accéder à son WSDL, qui peut être utilisé pour créer l'application client de base qui communiquera avec le Service Web. Le processus de génération de code Java de la publication WSDL est appelé consommer le service Web. Cela se produit en deux phases :
Créer les artefacts client.
Construire un service stub.
Accéder au point de terminaison.
Créer les artefacts client
Avant de pouvoir créer des artefacts client, vous devrez créer votre contrat WSDL. Le contrat WSDL suivant est utilisé dans les exemples présentés dans le reste de cette section.
Copy to ClipboardCopied!Toggle word wrapToggle overflow
Note
Si vous utilisez les annotations de JAX-WS pour créer votre point de terminaison de Service Web, le contrat WSDL sera généré automatiquement, et vous n'aurez besoin que de son URL. Vous pouvez obtenir cet URL dans la section Webservices de Runtime de la console de gestion sur le web, une fois le point de terminaison déployé.
L'outil wsconsume.sh ou wsconsume.bat est utilisé pour consommer le contrat abstrait (WSDL) et produire les classes Java annotées et les sources optionnelles qui le définissent. La commande se trouve dans le répertoire EAP_HOME/bin/ de l'installation JBoss EAP 6.
Exemple 14.17. Syntaxe de la commande wsconsume.sh
./wsconsume.sh --help
[user@host bin]$ ./wsconsume.sh --help
WSConsumeTask is a cmd line tool that generates portable JAX-WS artifacts from a WSDL file.
usage: org.jboss.ws.tools.cmd.WSConsume [options] <wsdl-url>
options:
-h, --help Show this help message
-b, --binding=<file> One or more JAX-WS or JAXB binding files
-k, --keep Keep/Generate Java source
-c --catalog=<file> Oasis XML Catalog file for entity resolution
-p --package=<name> The target package for generated source
-w --wsdlLocation=<loc> Value to use for @WebService.wsdlLocation
-o, --output=<directory> The directory to put generated artifacts
-s, --source=<directory> The directory to put Java source
-t, --target=<2.0|2.1|2.2> The JAX-WS specification target
-q, --quiet Be somewhat more quiet
-v, --verbose Show full exception stack traces
-l, --load-consumer Load the consumer and exit (debug utility)
-e, --extension Enable SOAP 1.2 binding extension
-a, --additionalHeaders Enable processing of implicit SOAP headers
-n, --nocompile Do not compile generated sources
Copy to ClipboardCopied!Toggle word wrapToggle overflow
La commande suivante génère les fichiers source .java listés dans la sortie, à partir du fichier ProfileMgmtService.wsdl. Les sources utilisent la structure de répertoire du package qui est spécifié par le commutateur -p.
Copy to ClipboardCopied!Toggle word wrapToggle overflow
Les fichiers source .java et les fichiers .class compilés sont générés dans le répertoire output/ qui se trouve dans le répertoire où vous exécutez la commande.
Expand
Tableau 14.2. Descriptions d'artefacts créés par wsconsume.sh
Fichier
Description
ProfileMgmt.java
Interface de point de terminaison de service.
Customer.java
Personnaliser le type de données.
Discount*.java
Personnaliser les types de données.
ObjectFactory.java
Référentiel JAXB XML.
package-info.java
Annotations de package JAXB.
ProfileMgmtService.java
Usine de connexions.
La commande wsconsume.sh génère tous les types de données personnalisés (classes JAXB annotées), l'interface de point de terminaison de service et une classe de fabrique de services. Ces artefacts sont utilisés pour créer les implémentations web service clients.
Créer un Service Stub
Les clients de service Web permet d'abstraire les détails d'un appel de service web distant stubs de service. Pour une application cliente, une invocation WS ressemble à une invocation de tout autre composant de l'entreprise. Dans ce cas, l'interface de point de terminaison de service agit comme l'interface de l'entreprise, et une classe de fabrique de service n'est pas utilisée pour sa construction comme une ébauche de service.
Exemple 14.18. Créer un Service Stub et accéder à un point de terminaison
L'exemple suivant crée d'abord une fabrique de services à l'aide de l'emplacement WSDL et le nom du service. Il utilise ensuite l'interface de point de terminaison de service créée par la commande wsconsume.sh pour construire le stub de service. Enfin, le stub peut être utilisé comme le serait toute autre interface commerciale.
Vous pouvez trouver l'URL du WSDL de votre point de terminaison dans la console de gestion sur le web. Choisissez l'élément de menu Runtime en haut à gauche, puis l'élément de menu Déploiements en bas à gauche. Cliquez sur les Services Web et sélectionnez votre déploiement pour afficher ses détails.
import javax.xml.ws.Service;
[...]
Service service = Service.create(
new URL("http://example.org/service?wsdl"),
new QName("MyService")
);
ProfileMgmt profileMgmt = service.getPort(ProfileMgmt.class);
// Use the service stub in your application
import javax.xml.ws.Service;
[...]
Service service = Service.create(
new URL("http://example.org/service?wsdl"),
new QName("MyService")
);
ProfileMgmt profileMgmt = service.getPort(ProfileMgmt.class);
// Use the service stub in your application
Copy to ClipboardCopied!Toggle word wrapToggle overflow
Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.
Rendre l’open source plus inclusif
Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.
À propos de Red Hat
Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.