Table des Matières
Etendre les Applications J2EE avec des Services Web ................................................................ 1
Qu'est ce qu'un service Web..................................................................................................... 1
Consommation de services Web existant................................................................................. 2
Implémentation d'un service web dans une application web .................................................... 6
Création de Services Web depuis un WSDL...................................................................... 11
Types de Service Web....................................................................................................... 12
Implémentation des Services Web dans un Module EJB........................................................ 13
Test des services Web............................................................................................................ 14
Ajout d'un Gestionnaire de Message à un service Web.......................................................... 16
Etendre les Applications J2EE
avec des Services Web
Dans les sections suivantes, vous allez apprendre combien il est facile de créer et d'ajouter des
services Web à des applications J2EE (aussi bien des Applications Web que des Modules EJB) et
comment les publier pour qu'ils puissent être utilisés par d'autres applications et testés depuis
l'EDI.
Qu'est ce qu'un service Web
L'organisation W3C définit un service Web comme ceci: "Un service Wev est un système
logiciel identif par une URI dont les interfaces publiques et lesbindings” sont définis et décrits
dans un XML. Sa définition peut être découverte par d'autres systèmes logiciels. Ces systèmes
peuvent alors intéragir avec le service Web d'une manière prescrite par sa finition, en utilisant
des messages basés sur XML transportés par les protocoles Internets." L'implémentation d'un
service Web peut être fait dans n'importe quel language, et un service Web peut être également
accédé par différentes plateformes, puisque les messages sont basés sur XML. La plateforme J2EE
1.4 a scifié la création de services Web pour les applications Web (Web Tier Based) et les
Modules EJB. L'EDI NetBeans 4.1 supporte la création de services Web selon le JSR 109 dans les
Applications J2EE, ainsi que la consommation de services Web publiés, dans les Applications
J2EE.
Les services Web permettent aux Applications d'exposer des opérations Business aux autres
Applications, sans se préoccuper de leur impmentation. Cela est possible par l'utilisation des
standards suivants:
[lb] XML, le Common markup language pour la communication Les fournisseurs
de services, qui rendent les services disponibles, et les utilisateurs de services, qui
utilisent les services, communiquent entre eux par des Messages XML.
[lb] SOAP, le Common message format pour l'échange d'information Ces
messages XML suivent un format bien fini. Simple Object Access Protocol
(SOAP) fournit un format de message commun pour les services Web.
[lb] WSDL, le Common service specification formatsEn plus du SOAP et du
XML, il devait y avoir un format commun que tous les fournisseurs de services
Guide Pratique EDI NetBeans, Extension d'Applications J2EE avec des Services Web, 1
pouvaient utiliser pour spécifier les détails de leurs services, comme le type du
service, les paramètres du service, comment accéder au service, ... . Par exemple,
Web services Description Language (WSDL) fournit des services Web avec des
formats de scification commun.
Consommation de services Web existant
Pour qu'il soit utilisable par d'autres applications, un service Web doit publier un fichier
WSDL. Cela peut être fait via un répertoire UDDI, ou en exposant le fichier WSDL dans un
emplacement connu et identifé par une URL. C'est ce fichier WSDL qui est utilisé par l'application
pour construire les atrifacts cessaires. L'assistant “Web service Client” de l'EDI NetBeans 4.1
automatise le processus de création et met à jour les fichiers de descripteur de déploiement avec les
éléments <service-ref> appropriés, le système de génération (pour générer les stubs client).
[lb] Choisissez ce assistant appelé ose “Web service Client” dans la liste des éléments
“new depuis le menu contextuel d'un Projet Web application:
[lb] Cet assistant vous permet de reprendre un fichier WSDL, soit depuis l'URL d'un
service qui tourne, ou depuis votre répertoire local. Assurez-vous de définir un
nom de paquetage pour les interfaces générés qui seront utilisés par le code de
votre utilisateur pour accéder et intéragir avec ce service Web. Deux types de
Guide Pratique EDI NetBeans, Extension d'Applications J2EE avec des Services Web, 2
clients de service Web peuvent être générés:
[nl] JSR-109 (services Web Enterprise). Étend la JSR-101 en finissant le
packaging de services Web dans des modules J2EE standards, incluant un
nouveau descripteur de déployement, et définissant des services Web qui sont
impmens en tant que session beans ou servlettes. C'est le moyen recommendé et
portable (via la spécification J2EE 1.4).
[nl] JSR-101 (JAX-RPC). Définit le mapping de WSDL en Java et vice versa. Il
finit également une API cliente pour invoquer un service Web distant et un
runtime environment sur le serveur pour accueillir un service Web.
[lb] Cliquez sur le bouton Finish. Dans la fenêtre Project, vous devriez maintenant voir
un nouveau noeud logique sous le noeud Web Services References. Explorez les
enfants de ce noeud: pour chaque opération de service Web définie dans le fichier
WSDL, l'EDI montre un noeud qui a ce nom d'opération, et un menu contextuel
qui vous permet de tester cette opération directement dans l'EDI, sans écrire une
seule ligne de code.
L'entrée Web service Referencecessaire dans le web.xml pour cette application Web a été
correctement mise à jour, ce qui vous permet d'utiliser ce service Web soit depuis une serlvette ou
depuis une classe utilitaire qui se situe dans votre application Web.
Guide Pratique EDI NetBeans, Extension d'Applications J2EE avec des Services Web, 3
<service-ref>
<service-ref-name>service/SforceService</service-ref-name>
<service-interface>com.acme.SforceService</service-interface>
<wsdl-file>WEB-INF/wsdl/enterprise.wsdl</wsdl-file>
<jaxrpc-mapping-file>WEB-INF/wsdl/enterprise-mapping.xml</jaxrpc-
mapping-file>
<port-component-ref>
<service-endpoint-interface>com.acme.Soap</service-endpoint-
interface>
</port-component-ref>
</service-ref>
Bien que, la plupart du temps, l'EDI va sélectionner correctement les options de l'outil
wscompile, vous pouvez contrôler pleinement l'outil wscompile utilisé pour la génération du clde
client depuis le fichier WSDL via la vue Proprerties du projet, dans le noeud “Web services->Web
services Client” . Par exemple, vous pouvez modifier les flags “Optimized”, “Verbose Operation”
ou “Debug”.
[lb] Maintenant, vous désirez appeler une opération de ce service Web dans votre code
Java. Sélectionnez l'emplacement dans votre code source Java où vous désirez
insérer du code, et choisissez dans le menu contextuel l'entrée “Web services
Client Resources---> Call Web service Operation”.
Guide Pratique EDI NetBeans, Extension d'Applications J2EE avec des Services Web, 4
[lb] Sélectionnez l'opération que vous désirez invoquer, et voyez le nouveau code que
l'EDI à rajouté dans votre fichier Java:
try {
getNameFinderWebServiceRPCPort().nameFinderSearch(
//TODO enter operation arguments */);
} catch(java.rmi.RemoteException ex) {
// TODO handle remote exception
}
[lb] ainsi que quelquesthodes privées fait le Web service Reference lookup depuis
l'InitialContext, et l'accesseur au RCP Port pour l'opération sélectione:
private unknown.NameFinderWebService getNameFinderWebService() {
unknown.NameFinderWebService nameFinderWebService = null;
try {
javax.naming.InitialContext ic =
new javax.naming.InitialContext();
nameFinderWebService = (unknown.NameFinderWebService)
ic.lookup("java:comp/env/service/NameFinderWebService");
} catch(javax.naming.NamingException ex) {
// TODO handle JNDI naming exception
Guide Pratique EDI NetBeans, Extension d'Applications J2EE avec des Services Web, 5
1 / 22 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !